@oracle-agent/oracle 0.26.0 → 0.28.0

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 (44) hide show
  1. package/README.md +2 -2
  2. package/SETUP.md +27 -1
  3. package/dist/assets/skills/oracle-desk-product/SKILL.md +1 -1
  4. package/dist/bin/desk-server.mjs +35 -79
  5. package/dist/bin/oracle-data-mcp.mjs +13 -57
  6. package/dist/bin/oracle-gateway.mjs +1 -1
  7. package/dist/bin/oracle-public-server.mjs +4 -48
  8. package/dist/bin/oracle-route.mjs +22 -66
  9. package/dist/bin/oracle-scan.mjs +15 -59
  10. package/dist/cli/commands/auth.mjs +3 -3
  11. package/dist/cli/commands/chat.mjs +154 -145
  12. package/dist/cli/commands/doctor.mjs +4 -4
  13. package/dist/cli/commands/eval.mjs +147 -190
  14. package/dist/cli/commands/farm.mjs +34 -78
  15. package/dist/cli/commands/follow.mjs +17 -61
  16. package/dist/cli/commands/harness.mjs +3 -3
  17. package/dist/cli/commands/init.mjs +2 -2
  18. package/dist/cli/commands/model.mjs +158 -150
  19. package/dist/cli/commands/receipt.mjs +3 -3
  20. package/dist/cli/commands/resolve.mjs +13 -57
  21. package/dist/cli/commands/setup.mjs +43 -39
  22. package/dist/cli/commands/sign.mjs +14 -14
  23. package/dist/cli/commands/signer.mjs +14 -14
  24. package/dist/cli/commands/strategy.mjs +5 -49
  25. package/dist/cli/commands/swap.mjs +27 -71
  26. package/dist/cli/commands/venues.mjs +3 -3
  27. package/dist/data/desk-data.mjs +33 -77
  28. package/dist/data/names.mjs +2 -46
  29. package/dist/data/providers/farming.mjs +2 -46
  30. package/dist/index.mjs +37 -81
  31. package/dist/local-signer/anvil-attestation-worker.mjs +2 -0
  32. package/dist/local-signer/index.mjs +3 -3
  33. package/dist/local-signer/runtime.mjs +13 -0
  34. package/dist/nft/universal-mint-router.mjs +3 -47
  35. package/dist/router/index.mjs +2 -46
  36. package/dist/router/prepare-bridge.mjs +2 -46
  37. package/dist/scanner/index.mjs +4 -48
  38. package/dist/strategy/index.mjs +3 -47
  39. package/package.json +2 -1
  40. package/public/install.sh +20 -0
  41. package/public/oracle-splash/_variants/ice.html +1 -1
  42. package/public/oracle-splash/_variants/ivory.html +1 -1
  43. package/public/oracle-splash/index.html +1 -1
  44. package/public/oracle-splash/install.sh +20 -0
@@ -1,46 +1,2 @@
1
- var lf=Object.create;var qo=Object.defineProperty;var Ef=Object.getOwnPropertyDescriptor;var Qf=Object.getOwnPropertyNames;var Bf=Object.getPrototypeOf,If=Object.prototype.hasOwnProperty;var d=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(A,t)=>(typeof require<"u"?require:A)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var MA=(e,A,t)=>()=>{if(t)throw t[0];try{return e&&(A=e(e=0)),A}catch(r){throw t=[r],r}};var f=(e,A)=>()=>{try{return A||e((A={exports:{}}).exports,A),A.exports}catch(t){throw A=0,t}},Cf=(e,A)=>{for(var t in A)qo(e,t,{get:A[t],enumerable:!0})},hf=(e,A,t,r)=>{if(A&&typeof A=="object"||typeof A=="function")for(let n of Qf(A))!If.call(e,n)&&n!==t&&qo(e,n,{get:()=>A[n],enumerable:!(r=Ef(A,n))||r.enumerable});return e};var df=(e,A,t)=>(t=e!=null?lf(Bf(e)):{},hf(A||!e||!e.__esModule?qo(t,"default",{value:e,enumerable:!0}):t,e));var j=f((GL,Lg)=>{Lg.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent")}});var v=f((JL,su)=>{"use strict";var Tg=Symbol.for("undici.error.UND_ERR"),$=class extends Error{constructor(A){super(A),this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](A){return A&&A[Tg]===!0}[Tg]=!0},xg=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),Wo=class extends ${constructor(A){super(A),this.name="ConnectTimeoutError",this.message=A||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[xg]===!0}[xg]=!0},Yg=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"),Po=class extends ${constructor(A){super(A),this.name="HeadersTimeoutError",this.message=A||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[Yg]===!0}[Yg]=!0},Gg=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),_o=class extends ${constructor(A){super(A),this.name="HeadersOverflowError",this.message=A||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](A){return A&&A[Gg]===!0}[Gg]=!0},Jg=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),Zo=class extends ${constructor(A){super(A),this.name="BodyTimeoutError",this.message=A||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[Jg]===!0}[Jg]=!0},vg=Symbol.for("undici.error.UND_ERR_RESPONSE_STATUS_CODE"),zo=class extends ${constructor(A,t,r,n){super(A),this.name="ResponseStatusCodeError",this.message=A||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=n,this.status=t,this.statusCode=t,this.headers=r}static[Symbol.hasInstance](A){return A&&A[vg]===!0}[vg]=!0},Hg=Symbol.for("undici.error.UND_ERR_INVALID_ARG"),Ko=class extends ${constructor(A){super(A),this.name="InvalidArgumentError",this.message=A||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}static[Symbol.hasInstance](A){return A&&A[Hg]===!0}[Hg]=!0},Vg=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"),Xo=class extends ${constructor(A){super(A),this.name="InvalidReturnValueError",this.message=A||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}static[Symbol.hasInstance](A){return A&&A[Vg]===!0}[Vg]=!0},qg=Symbol.for("undici.error.UND_ERR_ABORT"),Ln=class extends ${constructor(A){super(A),this.name="AbortError",this.message=A||"The operation was aborted",this.code="UND_ERR_ABORT"}static[Symbol.hasInstance](A){return A&&A[qg]===!0}[qg]=!0},Og=Symbol.for("undici.error.UND_ERR_ABORTED"),jo=class extends Ln{constructor(A){super(A),this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](A){return A&&A[Og]===!0}[Og]=!0},Wg=Symbol.for("undici.error.UND_ERR_INFO"),$o=class extends ${constructor(A){super(A),this.name="InformationalError",this.message=A||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](A){return A&&A[Wg]===!0}[Wg]=!0},Pg=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"),ei=class extends ${constructor(A){super(A),this.name="RequestContentLengthMismatchError",this.message=A||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](A){return A&&A[Pg]===!0}[Pg]=!0},_g=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"),Ai=class extends ${constructor(A){super(A),this.name="ResponseContentLengthMismatchError",this.message=A||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](A){return A&&A[_g]===!0}[_g]=!0},Zg=Symbol.for("undici.error.UND_ERR_DESTROYED"),ti=class extends ${constructor(A){super(A),this.name="ClientDestroyedError",this.message=A||"The client is destroyed",this.code="UND_ERR_DESTROYED"}static[Symbol.hasInstance](A){return A&&A[Zg]===!0}[Zg]=!0},zg=Symbol.for("undici.error.UND_ERR_CLOSED"),ri=class extends ${constructor(A){super(A),this.name="ClientClosedError",this.message=A||"The client is closed",this.code="UND_ERR_CLOSED"}static[Symbol.hasInstance](A){return A&&A[zg]===!0}[zg]=!0},Kg=Symbol.for("undici.error.UND_ERR_SOCKET"),ni=class extends ${constructor(A,t){super(A),this.name="SocketError",this.message=A||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}static[Symbol.hasInstance](A){return A&&A[Kg]===!0}[Kg]=!0},Xg=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"),si=class extends ${constructor(A){super(A),this.name="NotSupportedError",this.message=A||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}static[Symbol.hasInstance](A){return A&&A[Xg]===!0}[Xg]=!0},jg=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"),oi=class extends ${constructor(A){super(A),this.name="MissingUpstreamError",this.message=A||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}static[Symbol.hasInstance](A){return A&&A[jg]===!0}[jg]=!0},$g=Symbol.for("undici.error.UND_ERR_HTTP_PARSER"),ii=class extends Error{constructor(A,t,r){super(A),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=r?r.toString():void 0}static[Symbol.hasInstance](A){return A&&A[$g]===!0}[$g]=!0},eu=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"),ai=class extends ${constructor(A){super(A),this.name="ResponseExceededMaxSizeError",this.message=A||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}static[Symbol.hasInstance](A){return A&&A[eu]===!0}[eu]=!0},Au=Symbol.for("undici.error.UND_ERR_REQ_RETRY"),ci=class extends ${constructor(A,t,{headers:r,data:n}){super(A),this.name="RequestRetryError",this.message=A||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=t,this.data=n,this.headers=r}static[Symbol.hasInstance](A){return A&&A[Au]===!0}[Au]=!0},tu=Symbol.for("undici.error.UND_ERR_RESPONSE"),gi=class extends ${constructor(A,t,{headers:r,data:n}){super(A),this.name="ResponseError",this.message=A||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=t,this.data=n,this.headers=r}static[Symbol.hasInstance](A){return A&&A[tu]===!0}[tu]=!0},ru=Symbol.for("undici.error.UND_ERR_PRX_TLS"),ui=class extends ${constructor(A,t,r){super(t,{cause:A,...r??{}}),this.name="SecureProxyConnectionError",this.message=t||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=A}static[Symbol.hasInstance](A){return A&&A[ru]===!0}[ru]=!0},nu=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"),li=class extends ${constructor(A){super(A),this.name="MessageSizeExceededError",this.message=A||"Max decompressed message size exceeded",this.code="UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"}static[Symbol.hasInstance](A){return A&&A[nu]===!0}get[nu](){return!0}};su.exports={AbortError:Ln,HTTPParserError:ii,UndiciError:$,HeadersTimeoutError:Po,HeadersOverflowError:_o,BodyTimeoutError:Zo,RequestContentLengthMismatchError:ei,ConnectTimeoutError:Wo,ResponseStatusCodeError:zo,InvalidArgumentError:Ko,InvalidReturnValueError:Xo,RequestAbortedError:jo,ClientDestroyedError:ti,ClientClosedError:ri,InformationalError:$o,SocketError:ni,NotSupportedError:si,ResponseContentLengthMismatchError:Ai,BalancedPoolMissingUpstreamError:oi,ResponseExceededMaxSizeError:ai,RequestRetryError:ci,ResponseError:gi,SecureProxyConnectionError:ui,MessageSizeExceededError:li}});var xn=f((vL,ou)=>{"use strict";var Tn={},Ei=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e<Ei.length;++e){let A=Ei[e],t=A.toLowerCase();Tn[A]=Tn[t]=t}Object.setPrototypeOf(Tn,null);ou.exports={wellknownHeaderNames:Ei,headerNameLowerCasedRecord:Tn}});var gu=f((HL,cu)=>{"use strict";var{wellknownHeaderNames:iu,headerNameLowerCasedRecord:ff}=xn(),Qi=class e{value=null;left=null;middle=null;right=null;code;constructor(A,t,r){if(r===void 0||r>=A.length)throw new TypeError("Unreachable");if((this.code=A.charCodeAt(r))>127)throw new TypeError("key must be ascii string");A.length!==++r?this.middle=new e(A,t,r):this.value=t}add(A,t){let r=A.length;if(r===0)throw new TypeError("Unreachable");let n=0,s=this;for(;;){let o=A.charCodeAt(n);if(o>127)throw new TypeError("key must be ascii string");if(s.code===o)if(r===++n){s.value=t;break}else if(s.middle!==null)s=s.middle;else{s.middle=new e(A,t,n);break}else if(s.code<o)if(s.left!==null)s=s.left;else{s.left=new e(A,t,n);break}else if(s.right!==null)s=s.right;else{s.right=new e(A,t,n);break}}}search(A){let t=A.length,r=0,n=this;for(;n!==null&&r<t;){let s=A[r];for(s<=90&&s>=65&&(s|=32);n!==null;){if(s===n.code){if(t===++r)return n;n=n.middle;break}n=n.code<s?n.left:n.right}}return null}},Yn=class{node=null;insert(A,t){this.node===null?this.node=new Qi(A,t,0):this.node.add(A,t)}lookup(A){return this.node?.search(A)?.value??null}},au=new Yn;for(let e=0;e<iu.length;++e){let A=ff[iu[e]];au.insert(A,A)}cu.exports={TernarySearchTree:Yn,tree:au}});var x=f((VL,bu)=>{"use strict";var Sr=d("node:assert"),{kDestroyed:lu,kBodyUsed:Nt,kListeners:Bi,kBody:uu}=j(),{IncomingMessage:pf}=d("node:http"),vn=d("node:stream"),wf=d("node:net"),{Blob:mf}=d("node:buffer"),yf=d("node:util"),{stringify:Df}=d("node:querystring"),{EventEmitter:bf}=d("node:events"),{InvalidArgumentError:ce}=v(),{headerNameLowerCasedRecord:kf}=xn(),{tree:Eu}=gu(),[Ff,Rf]=process.versions.node.split(".").map(e=>Number(e)),Jn=class{constructor(A){this[uu]=A,this[Nt]=!1}async*[Symbol.asyncIterator](){Sr(!this[Nt],"disturbed"),this[Nt]=!0,yield*this[uu]}};function Sf(e){return Hn(e)?(hu(e)===0&&e.on("data",function(){Sr(!1)}),typeof e.readableDidRead!="boolean"&&(e[Nt]=!1,bf.prototype.on.call(e,"data",function(){this[Nt]=!0})),e):e&&typeof e.pipeTo=="function"?new Jn(e):e&&typeof e!="string"&&!ArrayBuffer.isView(e)&&Cu(e)?new Jn(e):e}function Nf(){}function Hn(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function Qu(e){if(e===null)return!1;if(e instanceof mf)return!0;if(typeof e!="object")return!1;{let A=e[Symbol.toStringTag];return(A==="Blob"||A==="File")&&("stream"in e&&typeof e.stream=="function"||"arrayBuffer"in e&&typeof e.arrayBuffer=="function")}}function Uf(e,A){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=Df(A);return t&&(e+="?"+t),e}function Bu(e){let A=parseInt(e,10);return A===Number(e)&&A>=0&&A<=65535}function Gn(e){return e!=null&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&(e[4]===":"||e[4]==="s"&&e[5]===":")}function Iu(e){if(typeof e=="string"){if(e=new URL(e),!Gn(e.origin||e.protocol))throw new ce("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new ce("Invalid URL: The URL argument must be a non-null object.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&Bu(e.port)===!1)throw new ce("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new ce("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new ce("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new ce("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new ce("Invalid URL origin: the origin must be a string or null/undefined.");if(!Gn(e.origin||e.protocol))throw new ce("Invalid URL protocol: the URL must start with `http:` or `https:`.");let A=e.port!=null?e.port:e.protocol==="https:"?443:80,t=e.origin!=null?e.origin:`${e.protocol||""}//${e.hostname||""}:${A}`,r=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;return t[t.length-1]==="/"&&(t=t.slice(0,t.length-1)),r&&r[0]!=="/"&&(r=`/${r}`),new URL(`${t}${r}`)}if(!Gn(e.origin||e.protocol))throw new ce("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function Mf(e){if(e=Iu(e),e.pathname!=="/"||e.search||e.hash)throw new ce("invalid url");return e}function Lf(e){if(e[0]==="["){let t=e.indexOf("]");return Sr(t!==-1),e.substring(1,t)}let A=e.indexOf(":");return A===-1?e:e.substring(0,A)}function Tf(e){if(!e)return null;Sr(typeof e=="string");let A=Lf(e);return wf.isIP(A)?"":A}function xf(e){return JSON.parse(JSON.stringify(e))}function Yf(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function Cu(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function hu(e){if(e==null)return 0;if(Hn(e)){let A=e._readableState;return A&&A.objectMode===!1&&A.ended===!0&&Number.isFinite(A.length)?A.length:null}else{if(Qu(e))return e.size!=null?e.size:null;if(pu(e))return e.byteLength}return null}function du(e){return e&&!!(e.destroyed||e[lu]||vn.isDestroyed?.(e))}function Gf(e,A){e==null||!Hn(e)||du(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===pf&&(e.socket=null),e.destroy(A)):A&&queueMicrotask(()=>{e.emit("error",A)}),e.destroyed!==!0&&(e[lu]=!0))}var Jf=/timeout=(\d+)/;function vf(e){let A=e.toString().match(Jf);return A?parseInt(A[1],10)*1e3:null}function fu(e){return typeof e=="string"?kf[e]??e.toLowerCase():Eu.lookup(e)??e.toString("latin1").toLowerCase()}function Hf(e){return Eu.lookup(e)??e.toString("latin1").toLowerCase()}function Vf(e,A){A===void 0&&(A={});for(let t=0;t<e.length;t+=2){let r=fu(e[t]),n=A[r];if(n)typeof n=="string"&&(n=[n],A[r]=n),n.push(e[t+1].toString("utf8"));else{let s=e[t+1];typeof s=="string"?A[r]=s:A[r]=Array.isArray(s)?s.map(o=>o.toString("utf8")):s.toString("utf8")}}return"content-length"in A&&"content-disposition"in A&&(A["content-disposition"]=Buffer.from(A["content-disposition"]).toString("latin1")),A}function qf(e){let A=e.length,t=new Array(A),r=!1,n=-1,s,o,i=0;for(let a=0;a<e.length;a+=2)s=e[a],o=e[a+1],typeof s!="string"&&(s=s.toString()),typeof o!="string"&&(o=o.toString("utf8")),i=s.length,i===14&&s[7]==="-"&&(s==="content-length"||s.toLowerCase()==="content-length")?r=!0:i===19&&s[7]==="-"&&(s==="content-disposition"||s.toLowerCase()==="content-disposition")&&(n=a+1),t[a]=s,t[a+1]=o;return r&&n!==-1&&(t[n]=Buffer.from(t[n]).toString("latin1")),t}function pu(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function Of(e,A,t){if(!e||typeof e!="object")throw new ce("handler must be an object");if(typeof e.onConnect!="function")throw new ce("invalid onConnect method");if(typeof e.onError!="function")throw new ce("invalid onError method");if(typeof e.onBodySent!="function"&&e.onBodySent!==void 0)throw new ce("invalid onBodySent method");if(t||A==="CONNECT"){if(typeof e.onUpgrade!="function")throw new ce("invalid onUpgrade method")}else{if(typeof e.onHeaders!="function")throw new ce("invalid onHeaders method");if(typeof e.onData!="function")throw new ce("invalid onData method");if(typeof e.onComplete!="function")throw new ce("invalid onComplete method")}}function Wf(e){return!!(e&&(vn.isDisturbed(e)||e[Nt]))}function Pf(e){return!!(e&&vn.isErrored(e))}function _f(e){return!!(e&&vn.isReadable(e))}function Zf(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}function zf(e){let A;return new ReadableStream({async start(){A=e[Symbol.asyncIterator]()},async pull(t){let{done:r,value:n}=await A.next();if(r)queueMicrotask(()=>{t.close(),t.byobRequest?.respond(0)});else{let s=Buffer.isBuffer(n)?n:Buffer.from(n);s.byteLength&&t.enqueue(new Uint8Array(s))}return t.desiredSize>0},async cancel(t){await A.return()},type:"bytes"})}function Kf(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function Xf(e,A){return"addEventListener"in e?(e.addEventListener("abort",A,{once:!0}),()=>e.removeEventListener("abort",A)):(e.addListener("abort",A),()=>e.removeListener("abort",A))}var jf=typeof String.prototype.toWellFormed=="function",$f=typeof String.prototype.isWellFormed=="function";function wu(e){return jf?`${e}`.toWellFormed():yf.toUSVString(e)}function e0(e){return $f?`${e}`.isWellFormed():wu(e)===`${e}`}function mu(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function A0(e){if(e.length===0)return!1;for(let A=0;A<e.length;++A)if(!mu(e.charCodeAt(A)))return!1;return!0}var t0=/[^\t\x20-\x7e\x80-\xff]/;function r0(e){return!t0.test(e)}function n0(e){if(e==null||e==="")return{start:0,end:null,size:null};let A=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return A?{start:parseInt(A[1]),end:A[2]?parseInt(A[2]):null,size:A[3]?parseInt(A[3]):null}:null}function s0(e,A,t){return(e[Bi]??=[]).push([A,t]),e.on(A,t),e}function o0(e){for(let[A,t]of e[Bi]??[])e.removeListener(A,t);e[Bi]=null}function i0(e,A,t){try{A.onError(t),Sr(A.aborted)}catch(r){e.emit("error",r)}}var yu=Object.create(null);yu.enumerable=!0;var Ii={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"},Du={...Ii,patch:"patch",PATCH:"PATCH"};Object.setPrototypeOf(Ii,null);Object.setPrototypeOf(Du,null);bu.exports={kEnumerableProperty:yu,nop:Nf,isDisturbed:Wf,isErrored:Pf,isReadable:_f,toUSVString:wu,isUSVString:e0,isBlobLike:Qu,parseOrigin:Mf,parseURL:Iu,getServerName:Tf,isStream:Hn,isIterable:Cu,isAsyncIterable:Yf,isDestroyed:du,headerNameToString:fu,bufferToLowerCasedHeaderName:Hf,addListener:s0,removeAllListeners:o0,errorRequest:i0,parseRawHeaders:qf,parseHeaders:Vf,parseKeepAliveTimeout:vf,destroy:Gf,bodyLength:hu,deepClone:xf,ReadableStreamFrom:zf,isBuffer:pu,validateHandler:Of,getSocketInfo:Zf,isFormDataLike:Kf,buildURL:Uf,addAbortListener:Xf,isValidHTTPToken:A0,isValidHeaderValue:r0,isTokenCharCode:mu,parseRangeHeader:n0,normalizedMethodRecordsBase:Ii,normalizedMethodRecords:Du,isValidPort:Bu,isHttpOrHttpsPrefixed:Gn,nodeMajor:Ff,nodeMinor:Rf,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"],wrapRequestBody:Sf}});var Ut=f((qL,Fu)=>{"use strict";var q=d("node:diagnostics_channel"),hi=d("node:util"),Vn=hi.debuglog("undici"),Ci=hi.debuglog("fetch"),$A=hi.debuglog("websocket"),ku=!1,a0={beforeConnect:q.channel("undici:client:beforeConnect"),connected:q.channel("undici:client:connected"),connectError:q.channel("undici:client:connectError"),sendHeaders:q.channel("undici:client:sendHeaders"),create:q.channel("undici:request:create"),bodySent:q.channel("undici:request:bodySent"),headers:q.channel("undici:request:headers"),trailers:q.channel("undici:request:trailers"),error:q.channel("undici:request:error"),open:q.channel("undici:websocket:open"),close:q.channel("undici:websocket:close"),socketError:q.channel("undici:websocket:socket_error"),ping:q.channel("undici:websocket:ping"),pong:q.channel("undici:websocket:pong")};if(Vn.enabled||Ci.enabled){let e=Ci.enabled?Ci:Vn;q.channel("undici:client:beforeConnect").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connecting to %s using %s%s",`${s}${n?`:${n}`:""}`,r,t)}),q.channel("undici:client:connected").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connected to %s using %s%s",`${s}${n?`:${n}`:""}`,r,t)}),q.channel("undici:client:connectError").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s},error:o}=A;e("connection to %s using %s%s errored - %s",`${s}${n?`:${n}`:""}`,r,t,o.message)}),q.channel("undici:client:sendHeaders").subscribe(A=>{let{request:{method:t,path:r,origin:n}}=A;e("sending request to %s %s/%s",t,n,r)}),q.channel("undici:request:headers").subscribe(A=>{let{request:{method:t,path:r,origin:n},response:{statusCode:s}}=A;e("received response to %s %s/%s - HTTP %d",t,n,r,s)}),q.channel("undici:request:trailers").subscribe(A=>{let{request:{method:t,path:r,origin:n}}=A;e("trailers received from %s %s/%s",t,n,r)}),q.channel("undici:request:error").subscribe(A=>{let{request:{method:t,path:r,origin:n},error:s}=A;e("request to %s %s/%s errored - %s",t,n,r,s.message)}),ku=!0}if($A.enabled){if(!ku){let e=Vn.enabled?Vn:$A;q.channel("undici:client:beforeConnect").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connecting to %s%s using %s%s",s,n?`:${n}`:"",r,t)}),q.channel("undici:client:connected").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connected to %s%s using %s%s",s,n?`:${n}`:"",r,t)}),q.channel("undici:client:connectError").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s},error:o}=A;e("connection to %s%s using %s%s errored - %s",s,n?`:${n}`:"",r,t,o.message)}),q.channel("undici:client:sendHeaders").subscribe(A=>{let{request:{method:t,path:r,origin:n}}=A;e("sending request to %s %s/%s",t,n,r)})}q.channel("undici:websocket:open").subscribe(e=>{let{address:{address:A,port:t}}=e;$A("connection opened %s%s",A,t?`:${t}`:"")}),q.channel("undici:websocket:close").subscribe(e=>{let{websocket:A,code:t,reason:r}=e;$A("closed connection to %s - %s %s",A.url,t,r)}),q.channel("undici:websocket:socket_error").subscribe(e=>{$A("connection errored - %s",e.message)}),q.channel("undici:websocket:ping").subscribe(e=>{$A("ping received")}),q.channel("undici:websocket:pong").subscribe(e=>{$A("pong received")})}Fu.exports={channels:a0}});var Uu=f((OL,Nu)=>{"use strict";var{InvalidArgumentError:W,NotSupportedError:c0}=v(),BA=d("node:assert"),{isValidHTTPToken:Su,isValidHeaderValue:Nr,isStream:g0,destroy:u0,isBuffer:l0,isFormDataLike:E0,isIterable:Q0,isBlobLike:B0,buildURL:I0,validateHandler:C0,getServerName:h0,normalizedMethodRecords:d0}=x(),{channels:AA}=Ut(),{headerNameLowerCasedRecord:Ru}=xn(),f0=/[^\u0021-\u00ff]/,Ye=Symbol("handler"),di=class{constructor(A,{path:t,method:r,body:n,headers:s,query:o,idempotent:i,blocking:a,upgrade:c,headersTimeout:l,bodyTimeout:u,reset:g,throwOnError:E,expectContinue:Q,servername:I},C){if(typeof t!="string")throw new W("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&r!=="CONNECT")throw new W("path must be an absolute URL or start with a slash");if(f0.test(t))throw new W("invalid request path");if(typeof r!="string")throw new W("method must be a string");if(d0[r]===void 0&&!Su(r))throw new W("invalid request method");if(c&&typeof c!="string")throw new W("upgrade must be a string");if(c&&!Nr(c))throw new W("invalid upgrade header");if(l!=null&&(!Number.isFinite(l)||l<0))throw new W("invalid headersTimeout");if(u!=null&&(!Number.isFinite(u)||u<0))throw new W("invalid bodyTimeout");if(g!=null&&typeof g!="boolean")throw new W("invalid reset");if(Q!=null&&typeof Q!="boolean")throw new W("invalid expectContinue");if(this.headersTimeout=l,this.bodyTimeout=u,this.throwOnError=E===!0,this.method=r,this.abort=null,n==null)this.body=null;else if(g0(n)){this.body=n;let B=this.body._readableState;(!B||!B.autoDestroy)&&(this.endHandler=function(){u0(this)},this.body.on("end",this.endHandler)),this.errorHandler=h=>{this.abort?this.abort(h):this.error=h},this.body.on("error",this.errorHandler)}else if(l0(n))this.body=n.byteLength?n:null;else if(ArrayBuffer.isView(n))this.body=n.buffer.byteLength?Buffer.from(n.buffer,n.byteOffset,n.byteLength):null;else if(n instanceof ArrayBuffer)this.body=n.byteLength?Buffer.from(n):null;else if(typeof n=="string")this.body=n.length?Buffer.from(n):null;else if(E0(n)||Q0(n)||B0(n))this.body=n;else throw new W("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=c||null,this.path=o?I0(t,o):t,this.origin=A,this.idempotent=i??(r==="HEAD"||r==="GET"),this.blocking=a??!1,this.reset=g??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=Q??!1,Array.isArray(s)){if(s.length%2!==0)throw new W("headers array must be even");for(let B=0;B<s.length;B+=2)qn(this,s[B],s[B+1])}else if(s&&typeof s=="object")if(s[Symbol.iterator])for(let B of s){if(!Array.isArray(B)||B.length!==2)throw new W("headers must be in key-value pair format");qn(this,B[0],B[1])}else{let B=Object.keys(s);for(let h=0;h<B.length;++h)qn(this,B[h],s[B[h]])}else if(s!=null)throw new W("headers must be an object or an array");C0(C,r,c),this.servername=I||h0(this.host),this[Ye]=C,AA.create.hasSubscribers&&AA.create.publish({request:this})}onBodySent(A){if(this[Ye].onBodySent)try{return this[Ye].onBodySent(A)}catch(t){this.abort(t)}}onRequestSent(){if(AA.bodySent.hasSubscribers&&AA.bodySent.publish({request:this}),this[Ye].onRequestSent)try{return this[Ye].onRequestSent()}catch(A){this.abort(A)}}onConnect(A){if(BA(!this.aborted),BA(!this.completed),this.error)A(this.error);else return this.abort=A,this[Ye].onConnect(A)}onResponseStarted(){return this[Ye].onResponseStarted?.()}onHeaders(A,t,r,n){BA(!this.aborted),BA(!this.completed),AA.headers.hasSubscribers&&AA.headers.publish({request:this,response:{statusCode:A,headers:t,statusText:n}});try{return this[Ye].onHeaders(A,t,r,n)}catch(s){this.abort(s)}}onData(A){BA(!this.aborted),BA(!this.completed);try{return this[Ye].onData(A)}catch(t){return this.abort(t),!1}}onUpgrade(A,t,r){return BA(!this.aborted),BA(!this.completed),this[Ye].onUpgrade(A,t,r)}onComplete(A){this.onFinally(),BA(!this.aborted),this.completed=!0,AA.trailers.hasSubscribers&&AA.trailers.publish({request:this,trailers:A});try{return this[Ye].onComplete(A)}catch(t){this.onError(t)}}onError(A){if(this.onFinally(),AA.error.hasSubscribers&&AA.error.publish({request:this,error:A}),!this.aborted)return this.aborted=!0,this[Ye].onError(A)}onFinally(){this.errorHandler&&(this.body.off("error",this.errorHandler),this.errorHandler=null),this.endHandler&&(this.body.off("end",this.endHandler),this.endHandler=null)}addHeader(A,t){return qn(this,A,t),this}};function qn(e,A,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new W(`invalid ${A} header`);if(t===void 0)return;let r=Ru[A];if(r===void 0&&(r=A.toLowerCase(),Ru[r]===void 0&&!Su(r)))throw new W("invalid header key");if(Array.isArray(t)){let n=[];for(let s=0;s<t.length;s++)if(typeof t[s]=="string"){if(!Nr(t[s]))throw new W(`invalid ${A} header`);n.push(t[s])}else if(t[s]===null)n.push("");else{if(typeof t[s]=="object")throw new W(`invalid ${A} header`);{let o=`${t[s]}`;if(!Nr(o))throw new W(`invalid ${A} header`);n.push(o)}}t=n}else if(typeof t=="string"){if(!Nr(t))throw new W(`invalid ${A} header`)}else if(t===null)t="";else if(t=`${t}`,!Nr(t))throw new W(`invalid ${A} header`);if(r==="host"){if(e.host!==null)throw new W("duplicate host header");if(typeof t!="string")throw new W("invalid host header");e.host=t}else if(r==="content-length"){if(e.contentLength!==null)throw new W("duplicate content-length header");if(e.contentLength=parseInt(t,10),!Number.isFinite(e.contentLength))throw new W("invalid content-length header")}else if(e.contentType===null&&r==="content-type")e.contentType=t,e.headers.push(A,t);else{if(r==="transfer-encoding"||r==="keep-alive"||r==="upgrade")throw new W(`invalid ${r} header`);if(r==="connection"){let n=typeof t=="string"?t.toLowerCase():null;if(n!=="close"&&n!=="keep-alive")throw new W("invalid connection header");n==="close"&&(e.reset=!0)}else{if(r==="expect")throw new c0("expect header not supported");e.headers.push(A,t)}}}Nu.exports=di});var Ur=f((WL,Mu)=>{"use strict";var p0=d("node:events"),On=class extends p0{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...A){let t=Array.isArray(A[0])?A[0]:A,r=this.dispatch.bind(this);for(let n of t)if(n!=null){if(typeof n!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof n}`);if(r=n(r),r==null||typeof r!="function"||r.length!==2)throw new TypeError("invalid interceptor")}return new fi(this,r)}},fi=class extends On{#e=null;#A=null;constructor(A,t){super(),this.#e=A,this.#A=t}dispatch(...A){this.#A(...A)}close(...A){return this.#e.close(...A)}destroy(...A){return this.#e.destroy(...A)}};Mu.exports=On});var xt=f((PL,Lu)=>{"use strict";var w0=Ur(),{ClientDestroyedError:pi,ClientClosedError:m0,InvalidArgumentError:Mt}=v(),{kDestroy:y0,kClose:D0,kClosed:Mr,kDestroyed:Lt,kDispatch:wi,kInterceptors:et}=j(),IA=Symbol("onDestroyed"),Tt=Symbol("onClosed"),Wn=Symbol("Intercepted Dispatch"),mi=Symbol("webSocketOptions"),yi=class extends w0{constructor(A){super(),this[Lt]=!1,this[IA]=null,this[Mr]=!1,this[Tt]=[],this[mi]=A?.webSocket??{}}get webSocketOptions(){return{maxFragments:this[mi].maxFragments??131072,maxPayloadSize:this[mi].maxPayloadSize??128*1024*1024}}get destroyed(){return this[Lt]}get closed(){return this[Mr]}get interceptors(){return this[et]}set interceptors(A){if(A){for(let t=A.length-1;t>=0;t--)if(typeof this[et][t]!="function")throw new Mt("interceptor must be an function")}this[et]=A}close(A){if(A===void 0)return new Promise((r,n)=>{this.close((s,o)=>s?n(s):r(o))});if(typeof A!="function")throw new Mt("invalid callback");if(this[Lt]){queueMicrotask(()=>A(new pi,null));return}if(this[Mr]){this[Tt]?this[Tt].push(A):queueMicrotask(()=>A(null,null));return}this[Mr]=!0,this[Tt].push(A);let t=()=>{let r=this[Tt];this[Tt]=null;for(let n=0;n<r.length;n++)r[n](null,null)};this[D0]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(A,t){if(typeof A=="function"&&(t=A,A=null),t===void 0)return new Promise((n,s)=>{this.destroy(A,(o,i)=>o?s(o):n(i))});if(typeof t!="function")throw new Mt("invalid callback");if(this[Lt]){this[IA]?this[IA].push(t):queueMicrotask(()=>t(null,null));return}A||(A=new pi),this[Lt]=!0,this[IA]=this[IA]||[],this[IA].push(t);let r=()=>{let n=this[IA];this[IA]=null;for(let s=0;s<n.length;s++)n[s](null,null)};this[y0](A).then(()=>{queueMicrotask(r)})}[Wn](A,t){if(!this[et]||this[et].length===0)return this[Wn]=this[wi],this[wi](A,t);let r=this[wi].bind(this);for(let n=this[et].length-1;n>=0;n--)r=this[et][n](r);return this[Wn]=r,r(A,t)}dispatch(A,t){if(!t||typeof t!="object")throw new Mt("handler must be an object");try{if(!A||typeof A!="object")throw new Mt("opts must be an object.");if(this[Lt]||this[IA])throw new pi;if(this[Mr])throw new m0;return this[Wn](A,t)}catch(r){if(typeof t.onError!="function")throw new Mt("invalid onError method");return t.onError(r),!1}}};Lu.exports=yi});var Ni=f((_L,Gu)=>{"use strict";var Yt=0,Di=1e3,bi=(Di>>1)-1,CA,ki=Symbol("kFastTimer"),hA=[],Fi=-2,Ri=-1,xu=0,Tu=1;function Si(){Yt+=bi;let e=0,A=hA.length;for(;e<A;){let t=hA[e];t._state===xu?(t._idleStart=Yt-bi,t._state=Tu):t._state===Tu&&Yt>=t._idleStart+t._idleTimeout&&(t._state=Ri,t._idleStart=-1,t._onTimeout(t._timerArg)),t._state===Ri?(t._state=Fi,--A!==0&&(hA[e]=hA[A])):++e}hA.length=A,hA.length!==0&&Yu()}function Yu(){CA?CA.refresh():(clearTimeout(CA),CA=setTimeout(Si,bi),CA.unref&&CA.unref())}var Pn=class{[ki]=!0;_state=Fi;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(A,t,r){this._onTimeout=A,this._idleTimeout=t,this._timerArg=r,this.refresh()}refresh(){this._state===Fi&&hA.push(this),(!CA||hA.length===1)&&Yu(),this._state=xu}clear(){this._state=Ri,this._idleStart=-1}};Gu.exports={setTimeout(e,A,t){return A<=Di?setTimeout(e,A,t):new Pn(e,A,t)},clearTimeout(e){e[ki]?e.clear():clearTimeout(e)},setFastTimeout(e,A,t){return new Pn(e,A,t)},clearFastTimeout(e){e.clear()},now(){return Yt},tick(e=0){Yt+=e-Di+1,Si(),Si()},reset(){Yt=0,hA.length=0,clearTimeout(CA),CA=null},kFastTimer:ki}});var Lr=f((KL,qu)=>{"use strict";var b0=d("node:net"),Ju=d("node:assert"),Vu=x(),{InvalidArgumentError:k0,ConnectTimeoutError:F0}=v(),_n=Ni();function vu(){}var Ui,Mi;global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG)?Mi=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let r=this._sessionCache.get(t);r!==void 0&&r.deref()===void 0&&this._sessionCache.delete(t)})}get(A){let t=this._sessionCache.get(A);return t?t.deref():null}set(A,t){this._maxCachedSessions!==0&&(this._sessionCache.set(A,new WeakRef(t)),this._sessionRegistry.register(t,A))}}:Mi=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map}get(A){return this._sessionCache.get(A)}set(A,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:r}=this._sessionCache.keys().next();this._sessionCache.delete(r)}this._sessionCache.set(A,t)}}};function R0({allowH2:e,maxCachedSessions:A,socketPath:t,timeout:r,session:n,...s}){if(A!=null&&(!Number.isInteger(A)||A<0))throw new k0("maxCachedSessions must be a positive integer or zero");let o={path:t,...s},i=new Mi(A??100);return r=r??1e4,e=e??!1,function({hostname:c,host:l,protocol:u,port:g,servername:E,localAddress:Q,httpSocket:I},C){let B;if(u==="https:"){Ui||(Ui=d("node:tls")),E=E||o.servername||Vu.getServerName(l)||null;let y=E||c;Ju(y);let m=n||i.get(y)||null;g=g||443,B=Ui.connect({highWaterMark:16384,...o,servername:E,session:m,localAddress:Q,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:I,port:g,host:c}),B.on("session",function(T){i.set(y,T)})}else Ju(!I,"httpSocket can only be sent on TLS update"),g=g||80,B=b0.connect({highWaterMark:64*1024,...o,localAddress:Q,port:g,host:c});if(o.keepAlive==null||o.keepAlive){let y=o.keepAliveInitialDelay===void 0?6e4:o.keepAliveInitialDelay;B.setKeepAlive(!0,y)}let h=S0(new WeakRef(B),{timeout:r,hostname:c,port:g});return B.setNoDelay(!0).once(u==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(h),C){let y=C;C=null,y(null,this)}}).on("error",function(y){if(queueMicrotask(h),C){let m=C;C=null,m(y)}}),B}}var S0=process.platform==="win32"?(e,A)=>{if(!A.timeout)return vu;let t=null,r=null,n=_n.setFastTimeout(()=>{t=setImmediate(()=>{r=setImmediate(()=>Hu(e.deref(),A))})},A.timeout);return()=>{_n.clearFastTimeout(n),clearImmediate(t),clearImmediate(r)}}:(e,A)=>{if(!A.timeout)return vu;let t=null,r=_n.setFastTimeout(()=>{t=setImmediate(()=>{Hu(e.deref(),A)})},A.timeout);return()=>{_n.clearFastTimeout(r),clearImmediate(t)}};function Hu(e,A){if(e==null)return;let t="Connect Timeout Error";Array.isArray(e.autoSelectFamilyAttemptedAddresses)?t+=` (attempted addresses: ${e.autoSelectFamilyAttemptedAddresses.join(", ")},`:t+=` (attempted address: ${A.hostname}:${A.port},`,t+=` timeout: ${A.timeout}ms)`,Vu.destroy(e,new F0(t))}qu.exports=R0});var Ou=f(Zn=>{"use strict";Object.defineProperty(Zn,"__esModule",{value:!0});Zn.enumToMap=void 0;function N0(e){let A={};return Object.keys(e).forEach(t=>{let r=e[t];typeof r=="number"&&(A[t]=r)}),A}Zn.enumToMap=N0});var Wu=f(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.SPECIAL_HEADERS=w.HEADER_STATE=w.MINOR=w.MAJOR=w.CONNECTION_TOKEN_CHARS=w.HEADER_CHARS=w.TOKEN=w.STRICT_TOKEN=w.HEX=w.URL_CHAR=w.STRICT_URL_CHAR=w.USERINFO_CHARS=w.MARK=w.ALPHANUM=w.NUM=w.HEX_MAP=w.NUM_MAP=w.ALPHA=w.FINISH=w.H_METHOD_MAP=w.METHOD_MAP=w.METHODS_RTSP=w.METHODS_ICE=w.METHODS_HTTP=w.METHODS=w.LENIENT_FLAGS=w.FLAGS=w.TYPE=w.ERROR=void 0;var U0=Ou(),M0;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(M0=w.ERROR||(w.ERROR={}));var L0;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(L0=w.TYPE||(w.TYPE={}));var T0;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(T0=w.FLAGS||(w.FLAGS={}));var x0;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(x0=w.LENIENT_FLAGS||(w.LENIENT_FLAGS={}));var F;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(F=w.METHODS||(w.METHODS={}));w.METHODS_HTTP=[F.DELETE,F.GET,F.HEAD,F.POST,F.PUT,F.CONNECT,F.OPTIONS,F.TRACE,F.COPY,F.LOCK,F.MKCOL,F.MOVE,F.PROPFIND,F.PROPPATCH,F.SEARCH,F.UNLOCK,F.BIND,F.REBIND,F.UNBIND,F.ACL,F.REPORT,F.MKACTIVITY,F.CHECKOUT,F.MERGE,F["M-SEARCH"],F.NOTIFY,F.SUBSCRIBE,F.UNSUBSCRIBE,F.PATCH,F.PURGE,F.MKCALENDAR,F.LINK,F.UNLINK,F.PRI,F.SOURCE];w.METHODS_ICE=[F.SOURCE];w.METHODS_RTSP=[F.OPTIONS,F.DESCRIBE,F.ANNOUNCE,F.SETUP,F.PLAY,F.PAUSE,F.TEARDOWN,F.GET_PARAMETER,F.SET_PARAMETER,F.REDIRECT,F.RECORD,F.FLUSH,F.GET,F.POST];w.METHOD_MAP=U0.enumToMap(F);w.H_METHOD_MAP={};Object.keys(w.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(w.H_METHOD_MAP[e]=w.METHOD_MAP[e])});var Y0;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(Y0=w.FINISH||(w.FINISH={}));w.ALPHA=[];for(let e=65;e<=90;e++)w.ALPHA.push(String.fromCharCode(e)),w.ALPHA.push(String.fromCharCode(e+32));w.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};w.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};w.NUM=["0","1","2","3","4","5","6","7","8","9"];w.ALPHANUM=w.ALPHA.concat(w.NUM);w.MARK=["-","_",".","!","~","*","'","(",")"];w.USERINFO_CHARS=w.ALPHANUM.concat(w.MARK).concat(["%",";",":","&","=","+","$",","]);w.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(w.ALPHANUM);w.URL_CHAR=w.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)w.URL_CHAR.push(e);w.HEX=w.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);w.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(w.ALPHANUM);w.TOKEN=w.STRICT_TOKEN.concat([" "]);w.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&w.HEADER_CHARS.push(e);w.CONNECTION_TOKEN_CHARS=w.HEADER_CHARS.filter(e=>e!==44);w.MAJOR=w.NUM_MAP;w.MINOR=w.MAJOR;var Gt;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(Gt=w.HEADER_STATE||(w.HEADER_STATE={}));w.SPECIAL_HEADERS={connection:Gt.CONNECTION,"content-length":Gt.CONTENT_LENGTH,"proxy-connection":Gt.CONNECTION,"transfer-encoding":Gt.TRANSFER_ENCODING,upgrade:Gt.UPGRADE}});var Li=f(($L,Pu)=>{"use strict";var{Buffer:G0}=d("node:buffer");Pu.exports=G0.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")});var Zu=f((eT,_u)=>{"use strict";var{Buffer:J0}=d("node:buffer");_u.exports=J0.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVuaWVudF9oZWFkZXJzACEhbGxodHRwX3NldF9sZW5pZW50X2NodW5rZWRfbGVuZ3RoACIdbGxodHRwX3NldF9sZW5pZW50X2tlZXBfYWxpdmUAIyRsbGh0dHBfc2V0X2xlbmllbnRfdHJhbnNmZXJfZW5jb2RpbmcAJBhsbGh0dHBfbWVzc2FnZV9uZWVkc19lb2YALgkXAQBBAQsRAQIDBAUKBgcrLSwqKSglJyYK77MCLBYAQYjQACgCAARAAAtBiNAAQQE2AgALFAAgABAwIAAgAjYCOCAAIAE6ACgLFAAgACAALwEyIAAtAC4gABAvEAALHgEBf0HAABAyIgEQMCABQYAINgI4IAEgADoAKCABC48MAQd/AkAgAEUNACAAQQhrIgEgAEEEaygCACIAQXhxIgRqIQUCQCAAQQFxDQAgAEEDcUUNASABIAEoAgAiAGsiAUGc0AAoAgBJDQEgACAEaiEEAkACQEGg0AAoAgAgAUcEQCAAQf8BTQRAIABBA3YhAyABKAIIIgAgASgCDCICRgRAQYzQAEGM0AAoAgBBfiADd3E2AgAMBQsgAiAANgIIIAAgAjYCDAwECyABKAIYIQYgASABKAIMIgBHBEAgACABKAIIIgI2AgggAiAANgIMDAMLIAFBFGoiAygCACICRQRAIAEoAhAiAkUNAiABQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFKAIEIgBBA3FBA0cNAiAFIABBfnE2AgRBlNAAIAQ2AgAgBSAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCABKAIcIgJBAnRBvNIAaiIDKAIAIAFGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgAUYbaiAANgIAIABFDQELIAAgBjYCGCABKAIQIgIEQCAAIAI2AhAgAiAANgIYCyABQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAFTw0AIAUoAgQiAEEBcUUNAAJAAkACQAJAIABBAnFFBEBBpNAAKAIAIAVGBEBBpNAAIAE2AgBBmNAAQZjQACgCACAEaiIANgIAIAEgAEEBcjYCBCABQaDQACgCAEcNBkGU0ABBADYCAEGg0ABBADYCAAwGC0Gg0AAoAgAgBUYEQEGg0AAgATYCAEGU0ABBlNAAKAIAIARqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAAwGCyAAQXhxIARqIQQgAEH/AU0EQCAAQQN2IQMgBSgCCCIAIAUoAgwiAkYEQEGM0ABBjNAAKAIAQX4gA3dxNgIADAULIAIgADYCCCAAIAI2AgwMBAsgBSgCGCEGIAUgBSgCDCIARwRAQZzQACgCABogACAFKAIIIgI2AgggAiAANgIMDAMLIAVBFGoiAygCACICRQRAIAUoAhAiAkUNAiAFQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFIABBfnE2AgQgASAEaiAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCAFKAIcIgJBAnRBvNIAaiIDKAIAIAVGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgBUYbaiAANgIAIABFDQELIAAgBjYCGCAFKAIQIgIEQCAAIAI2AhAgAiAANgIYCyAFQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAEaiAENgIAIAEgBEEBcjYCBCABQaDQACgCAEcNAEGU0AAgBDYCAAwBCyAEQf8BTQRAIARBeHFBtNAAaiEAAn9BjNAAKAIAIgJBASAEQQN2dCIDcUUEQEGM0AAgAiADcjYCACAADAELIAAoAggLIgIgATYCDCAAIAE2AgggASAANgIMIAEgAjYCCAwBC0EfIQIgBEH///8HTQRAIARBJiAEQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAgsgASACNgIcIAFCADcCECACQQJ0QbzSAGohAAJAQZDQACgCACIDQQEgAnQiB3FFBEAgACABNgIAQZDQACADIAdyNgIAIAEgADYCGCABIAE2AgggASABNgIMDAELIARBGSACQQF2a0EAIAJBH0cbdCECIAAoAgAhAAJAA0AgACIDKAIEQXhxIARGDQEgAkEddiEAIAJBAXQhAiADIABBBHFqQRBqIgcoAgAiAA0ACyAHIAE2AgAgASADNgIYIAEgATYCDCABIAE2AggMAQsgAygCCCIAIAE2AgwgAyABNgIIIAFBADYCGCABIAM2AgwgASAANgIIC0Gs0ABBrNAAKAIAQQFrIgBBfyAAGzYCAAsLBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LQAEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABAwIAAgBDYCOCAAIAM6ACggACACOgAtIAAgATYCGAu74gECB38DfiABIAJqIQQCQCAAIgIoAgwiAA0AIAIoAgQEQCACIAE2AgQLIwBBEGsiCCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAhwiA0EBaw7dAdoBAdkBAgMEBQYHCAkKCwwNDtgBDxDXARES1gETFBUWFxgZGhvgAd8BHB0e1QEfICEiIyQl1AEmJygpKiss0wHSAS0u0QHQAS8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRtsBR0hJSs8BzgFLzQFMzAFNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBywHKAbgByQG5AcgBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgEA3AELQQAMxgELQQ4MxQELQQ0MxAELQQ8MwwELQRAMwgELQRMMwQELQRQMwAELQRUMvwELQRYMvgELQRgMvQELQRkMvAELQRoMuwELQRsMugELQRwMuQELQR0MuAELQQgMtwELQR4MtgELQSAMtQELQR8MtAELQQcMswELQSEMsgELQSIMsQELQSMMsAELQSQMrwELQRIMrgELQREMrQELQSUMrAELQSYMqwELQScMqgELQSgMqQELQcMBDKgBC0EqDKcBC0ErDKYBC0EsDKUBC0EtDKQBC0EuDKMBC0EvDKIBC0HEAQyhAQtBMAygAQtBNAyfAQtBDAyeAQtBMQydAQtBMgycAQtBMwybAQtBOQyaAQtBNQyZAQtBxQEMmAELQQsMlwELQToMlgELQTYMlQELQQoMlAELQTcMkwELQTgMkgELQTwMkQELQTsMkAELQT0MjwELQQkMjgELQSkMjQELQT4MjAELQT8MiwELQcAADIoBC0HBAAyJAQtBwgAMiAELQcMADIcBC0HEAAyGAQtBxQAMhQELQcYADIQBC0EXDIMBC0HHAAyCAQtByAAMgQELQckADIABC0HKAAx/C0HLAAx+C0HNAAx9C0HMAAx8C0HOAAx7C0HPAAx6C0HQAAx5C0HRAAx4C0HSAAx3C0HTAAx2C0HUAAx1C0HWAAx0C0HVAAxzC0EGDHILQdcADHELQQUMcAtB2AAMbwtBBAxuC0HZAAxtC0HaAAxsC0HbAAxrC0HcAAxqC0EDDGkLQd0ADGgLQd4ADGcLQd8ADGYLQeEADGULQeAADGQLQeIADGMLQeMADGILQQIMYQtB5AAMYAtB5QAMXwtB5gAMXgtB5wAMXQtB6AAMXAtB6QAMWwtB6gAMWgtB6wAMWQtB7AAMWAtB7QAMVwtB7gAMVgtB7wAMVQtB8AAMVAtB8QAMUwtB8gAMUgtB8wAMUQtB9AAMUAtB9QAMTwtB9gAMTgtB9wAMTQtB+AAMTAtB+QAMSwtB+gAMSgtB+wAMSQtB/AAMSAtB/QAMRwtB/gAMRgtB/wAMRQtBgAEMRAtBgQEMQwtBggEMQgtBgwEMQQtBhAEMQAtBhQEMPwtBhgEMPgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")});var Tr=f((AT,tl)=>{"use strict";var zu=["GET","HEAD","POST"],v0=new Set(zu),H0=[101,204,205,304],Ku=[301,302,303,307,308],V0=new Set(Ku),Xu=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],q0=new Set(Xu),ju=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],O0=new Set(ju),W0=["follow","manual","error"],$u=["GET","HEAD","OPTIONS","TRACE"],P0=new Set($u),_0=["navigate","same-origin","no-cors","cors"],Z0=["omit","same-origin","include"],z0=["default","no-store","reload","no-cache","force-cache","only-if-cached"],K0=["content-encoding","content-language","content-location","content-type","content-length"],X0=["half"],el=["CONNECT","TRACE","TRACK"],j0=new Set(el),Al=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],$0=new Set(Al);tl.exports={subresource:Al,forbiddenMethods:el,requestBodyHeader:K0,referrerPolicy:ju,requestRedirect:W0,requestMode:_0,requestCredentials:Z0,requestCache:z0,redirectStatus:Ku,corsSafeListedMethods:zu,nullBodyStatus:H0,safeMethods:$u,badPorts:Xu,requestDuplex:X0,subresourceSet:$0,badPortsSet:q0,redirectStatusSet:V0,corsSafeListedMethodsSet:v0,safeMethodsSet:P0,forbiddenMethodsSet:j0,referrerPolicySet:O0}});var xi=f((tT,rl)=>{"use strict";var Ti=Symbol.for("undici.globalOrigin.1");function ep(){return globalThis[Ti]}function Ap(e){if(e===void 0){Object.defineProperty(globalThis,Ti,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let A=new URL(e);if(A.protocol!=="http:"&&A.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${A.protocol}`);Object.defineProperty(globalThis,Ti,{value:A,writable:!0,enumerable:!1,configurable:!1})}rl.exports={getGlobalOrigin:ep,setGlobalOrigin:Ap}});var de=f((rT,gl)=>{"use strict";var Kn=d("node:assert"),tp=new TextEncoder,xr=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,rp=/[\u000A\u000D\u0009\u0020]/,np=/[\u0009\u000A\u000C\u000D\u0020]/g,sp=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function op(e){Kn(e.protocol==="data:");let A=ol(e,!0);A=A.slice(5);let t={position:0},r=Jt(",",A,t),n=r.length;if(r=lp(r,!0,!0),t.position>=A.length)return"failure";t.position++;let s=A.slice(n+1),o=il(s);if(/;(\u0020){0,}base64$/i.test(r)){let a=cl(o);if(o=ap(a),o==="failure")return"failure";r=r.slice(0,-6),r=r.replace(/(\u0020)+$/,""),r=r.slice(0,-1)}r.startsWith(";")&&(r="text/plain"+r);let i=Yi(r);return i==="failure"&&(i=Yi("text/plain;charset=US-ASCII")),{mimeType:i,body:o}}function ol(e,A=!1){if(!A)return e.href;let t=e.href,r=e.hash.length,n=r===0?t:t.substring(0,t.length-r);return!r&&t.endsWith("#")?n.slice(0,-1):n}function Xn(e,A,t){let r="";for(;t.position<A.length&&e(A[t.position]);)r+=A[t.position],t.position++;return r}function Jt(e,A,t){let r=A.indexOf(e,t.position),n=t.position;return r===-1?(t.position=A.length,A.slice(n)):(t.position=r,A.slice(n,t.position))}function il(e){let A=tp.encode(e);return ip(A)}function nl(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function sl(e){return e>=48&&e<=57?e-48:(e&223)-55}function ip(e){let A=e.length,t=new Uint8Array(A),r=0;for(let n=0;n<A;++n){let s=e[n];s!==37?t[r++]=s:s===37&&!(nl(e[n+1])&&nl(e[n+2]))?t[r++]=37:(t[r++]=sl(e[n+1])<<4|sl(e[n+2]),n+=2)}return A===r?t:t.subarray(0,r)}function Yi(e){e=zn(e,!0,!0);let A={position:0},t=Jt("/",e,A);if(t.length===0||!xr.test(t)||A.position>e.length)return"failure";A.position++;let r=Jt(";",e,A);if(r=zn(r,!1,!0),r.length===0||!xr.test(r))return"failure";let n=t.toLowerCase(),s=r.toLowerCase(),o={type:n,subtype:s,parameters:new Map,essence:`${n}/${s}`};for(;A.position<e.length;){A.position++,Xn(c=>rp.test(c),e,A);let i=Xn(c=>c!==";"&&c!=="=",e,A);if(i=i.toLowerCase(),A.position<e.length){if(e[A.position]===";")continue;A.position++}if(A.position>e.length)break;let a=null;if(e[A.position]==='"')a=al(e,A,!0),Jt(";",e,A);else if(a=Jt(";",e,A),a=zn(a,!1,!0),a.length===0)continue;i.length!==0&&xr.test(i)&&(a.length===0||sp.test(a))&&!o.parameters.has(i)&&o.parameters.set(i,a)}return o}function ap(e){e=e.replace(np,"");let A=e.length;if(A%4===0&&e.charCodeAt(A-1)===61&&(--A,e.charCodeAt(A-1)===61&&--A),A%4===1||/[^+/0-9A-Za-z]/.test(e.length===A?e:e.substring(0,A)))return"failure";let t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function al(e,A,t){let r=A.position,n="";for(Kn(e[A.position]==='"'),A.position++;n+=Xn(o=>o!=='"'&&o!=="\\",e,A),!(A.position>=e.length);){let s=e[A.position];if(A.position++,s==="\\"){if(A.position>=e.length){n+="\\";break}n+=e[A.position],A.position++}else{Kn(s==='"');break}}return t?n:e.slice(r,A.position)}function cp(e){Kn(e!=="failure");let{parameters:A,essence:t}=e,r=t;for(let[n,s]of A.entries())r+=";",r+=n,r+="=",xr.test(s)||(s=s.replace(/(\\|")/g,"\\$1"),s='"'+s,s+='"'),r+=s;return r}function gp(e){return e===13||e===10||e===9||e===32}function zn(e,A=!0,t=!0){return Gi(e,A,t,gp)}function up(e){return e===13||e===10||e===9||e===12||e===32}function lp(e,A=!0,t=!0){return Gi(e,A,t,up)}function Gi(e,A,t,r){let n=0,s=e.length-1;if(A)for(;n<e.length&&r(e.charCodeAt(n));)n++;if(t)for(;s>0&&r(e.charCodeAt(s));)s--;return n===0&&s===e.length-1?e:e.slice(n,s+1)}function cl(e){let A=e.length;if(65535>A)return String.fromCharCode.apply(null,e);let t="",r=0,n=65535;for(;r<A;)r+n>A&&(n=A-r),t+=String.fromCharCode.apply(null,e.subarray(r,r+=n));return t}function Ep(e){switch(e.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return e.subtype.endsWith("+json")?"application/json":e.subtype.endsWith("+xml")?"application/xml":""}gl.exports={dataURLProcessor:op,URLSerializer:ol,collectASequenceOfCodePoints:Xn,collectASequenceOfCodePointsFast:Jt,stringPercentDecode:il,parseMIMEType:Yi,collectAnHTTPQuotedString:al,serializeAMimeType:cp,removeChars:Gi,removeHTTPWhitespace:zn,minimizeSupportedMimeType:Ep,HTTP_TOKEN_CODEPOINTS:xr,isomorphicDecode:cl}});var ue=f((nT,ul)=>{"use strict";var{types:tA,inspect:Qp}=d("node:util"),{markAsUncloneable:Bp}=d("node:worker_threads"),{toUSVString:Ip}=x(),p={};p.converters={};p.util={};p.errors={};p.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};p.errors.conversionFailed=function(e){let A=e.types.length===1?"":" one of",t=`${e.argument} could not be converted to${A}: ${e.types.join(", ")}.`;return p.errors.exception({header:e.prefix,message:t})};p.errors.invalidArgument=function(e){return p.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};p.brandCheck=function(e,A,t){if(t?.strict!==!1){if(!(e instanceof A)){let r=new TypeError("Illegal invocation");throw r.code="ERR_INVALID_THIS",r}}else if(e?.[Symbol.toStringTag]!==A.prototype[Symbol.toStringTag]){let r=new TypeError("Illegal invocation");throw r.code="ERR_INVALID_THIS",r}};p.argumentLengthCheck=function({length:e},A,t){if(e<A)throw p.errors.exception({message:`${A} argument${A!==1?"s":""} required, but${e?" only":""} ${e} found.`,header:t})};p.illegalConstructor=function(){throw p.errors.exception({header:"TypeError",message:"Illegal constructor"})};p.util.Type=function(e){switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return e===null?"Null":"Object"}};p.util.markAsUncloneable=Bp||(()=>{});p.util.ConvertToInt=function(e,A,t,r){let n,s;A===64?(n=Math.pow(2,53)-1,t==="unsigned"?s=0:s=Math.pow(-2,53)+1):t==="unsigned"?(s=0,n=Math.pow(2,A)-1):(s=Math.pow(-2,A)-1,n=Math.pow(2,A-1)-1);let o=Number(e);if(o===0&&(o=0),r?.enforceRange===!0){if(Number.isNaN(o)||o===Number.POSITIVE_INFINITY||o===Number.NEGATIVE_INFINITY)throw p.errors.exception({header:"Integer conversion",message:`Could not convert ${p.util.Stringify(e)} to an integer.`});if(o=p.util.IntegerPart(o),o<s||o>n)throw p.errors.exception({header:"Integer conversion",message:`Value must be between ${s}-${n}, got ${o}.`});return o}return!Number.isNaN(o)&&r?.clamp===!0?(o=Math.min(Math.max(o,s),n),Math.floor(o)%2===0?o=Math.floor(o):o=Math.ceil(o),o):Number.isNaN(o)||o===0&&Object.is(0,o)||o===Number.POSITIVE_INFINITY||o===Number.NEGATIVE_INFINITY?0:(o=p.util.IntegerPart(o),o=o%Math.pow(2,A),t==="signed"&&o>=Math.pow(2,A)-1?o-Math.pow(2,A):o)};p.util.IntegerPart=function(e){let A=Math.floor(Math.abs(e));return e<0?-1*A:A};p.util.Stringify=function(e){switch(p.util.Type(e)){case"Symbol":return`Symbol(${e.description})`;case"Object":return Qp(e);case"String":return`"${e}"`;default:return`${e}`}};p.sequenceConverter=function(e){return(A,t,r,n)=>{if(p.util.Type(A)!=="Object")throw p.errors.exception({header:t,message:`${r} (${p.util.Stringify(A)}) is not iterable.`});let s=typeof n=="function"?n():A?.[Symbol.iterator]?.(),o=[],i=0;if(s===void 0||typeof s.next!="function")throw p.errors.exception({header:t,message:`${r} is not iterable.`});for(;;){let{done:a,value:c}=s.next();if(a)break;o.push(e(c,t,`${r}[${i++}]`))}return o}};p.recordConverter=function(e,A){return(t,r,n)=>{if(p.util.Type(t)!=="Object")throw p.errors.exception({header:r,message:`${n} ("${p.util.Type(t)}") is not an Object.`});let s={};if(!tA.isProxy(t)){let i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(let a of i){let c=e(a,r,n),l=A(t[a],r,n);s[c]=l}return s}let o=Reflect.ownKeys(t);for(let i of o)if(Reflect.getOwnPropertyDescriptor(t,i)?.enumerable){let c=e(i,r,n),l=A(t[i],r,n);s[c]=l}return s}};p.interfaceConverter=function(e){return(A,t,r,n)=>{if(n?.strict!==!1&&!(A instanceof e))throw p.errors.exception({header:t,message:`Expected ${r} ("${p.util.Stringify(A)}") to be an instance of ${e.name}.`});return A}};p.dictionaryConverter=function(e){return(A,t,r)=>{let n=p.util.Type(A),s={};if(n==="Null"||n==="Undefined")return s;if(n!=="Object")throw p.errors.exception({header:t,message:`Expected ${A} to be one of: Null, Undefined, Object.`});for(let o of e){let{key:i,defaultValue:a,required:c,converter:l}=o;if(c===!0&&!Object.hasOwn(A,i))throw p.errors.exception({header:t,message:`Missing required key "${i}".`});let u=A[i],g=Object.hasOwn(o,"defaultValue");if(g&&u!==null&&(u??=a()),c||g||u!==void 0){if(u=l(u,t,`${r}.${i}`),o.allowedValues&&!o.allowedValues.includes(u))throw p.errors.exception({header:t,message:`${u} is not an accepted type. Expected one of ${o.allowedValues.join(", ")}.`});s[i]=u}}return s}};p.nullableConverter=function(e){return(A,t,r)=>A===null?A:e(A,t,r)};p.converters.DOMString=function(e,A,t,r){if(e===null&&r?.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw p.errors.exception({header:A,message:`${t} is a symbol, which cannot be converted to a DOMString.`});return String(e)};p.converters.ByteString=function(e,A,t){let r=p.converters.DOMString(e,A,t);for(let n=0;n<r.length;n++)if(r.charCodeAt(n)>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${n} has a value of ${r.charCodeAt(n)} which is greater than 255.`);return r};p.converters.USVString=Ip;p.converters.boolean=function(e){return!!e};p.converters.any=function(e){return e};p.converters["long long"]=function(e,A,t){return p.util.ConvertToInt(e,64,"signed",void 0,A,t)};p.converters["unsigned long long"]=function(e,A,t){return p.util.ConvertToInt(e,64,"unsigned",void 0,A,t)};p.converters["unsigned long"]=function(e,A,t){return p.util.ConvertToInt(e,32,"unsigned",void 0,A,t)};p.converters["unsigned short"]=function(e,A,t,r){return p.util.ConvertToInt(e,16,"unsigned",r,A,t)};p.converters.ArrayBuffer=function(e,A,t,r){if(p.util.Type(e)!=="Object"||!tA.isAnyArrayBuffer(e))throw p.errors.conversionFailed({prefix:A,argument:`${t} ("${p.util.Stringify(e)}")`,types:["ArrayBuffer"]});if(r?.allowShared===!1&&tA.isSharedArrayBuffer(e))throw p.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.resizable||e.growable)throw p.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};p.converters.TypedArray=function(e,A,t,r,n){if(p.util.Type(e)!=="Object"||!tA.isTypedArray(e)||e.constructor.name!==A.name)throw p.errors.conversionFailed({prefix:t,argument:`${r} ("${p.util.Stringify(e)}")`,types:[A.name]});if(n?.allowShared===!1&&tA.isSharedArrayBuffer(e.buffer))throw p.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw p.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};p.converters.DataView=function(e,A,t,r){if(p.util.Type(e)!=="Object"||!tA.isDataView(e))throw p.errors.exception({header:A,message:`${t} is not a DataView.`});if(r?.allowShared===!1&&tA.isSharedArrayBuffer(e.buffer))throw p.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw p.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};p.converters.BufferSource=function(e,A,t,r){if(tA.isAnyArrayBuffer(e))return p.converters.ArrayBuffer(e,A,t,{...r,allowShared:!1});if(tA.isTypedArray(e))return p.converters.TypedArray(e,e.constructor,A,t,{...r,allowShared:!1});if(tA.isDataView(e))return p.converters.DataView(e,A,t,{...r,allowShared:!1});throw p.errors.conversionFailed({prefix:A,argument:`${t} ("${p.util.Stringify(e)}")`,types:["BufferSource"]})};p.converters["sequence<ByteString>"]=p.sequenceConverter(p.converters.ByteString);p.converters["sequence<sequence<ByteString>>"]=p.sequenceConverter(p.converters["sequence<ByteString>"]);p.converters["record<ByteString, ByteString>"]=p.recordConverter(p.converters.ByteString,p.converters.ByteString);ul.exports={webidl:p}});var be=f((sT,Dl)=>{"use strict";var{Transform:Cp}=d("node:stream"),ll=d("node:zlib"),{redirectStatusSet:hp,referrerPolicySet:dp,badPortsSet:fp}=Tr(),{getGlobalOrigin:El}=xi(),{collectASequenceOfCodePoints:At,collectAnHTTPQuotedString:pp,removeChars:wp,parseMIMEType:mp}=de(),{performance:yp}=d("node:perf_hooks"),{isBlobLike:Dp,ReadableStreamFrom:bp,isValidHTTPToken:Ql,normalizedMethodRecordsBase:kp}=x(),tt=d("node:assert"),{isUint8Array:Fp}=d("node:util/types"),{webidl:Yr}=ue(),Bl=[],$n;try{$n=d("node:crypto");let e=["sha256","sha384","sha512"];Bl=$n.getHashes().filter(A=>e.includes(A))}catch{}function Il(e){let A=e.urlList,t=A.length;return t===0?null:A[t-1].toString()}function Rp(e,A){if(!hp.has(e.status))return null;let t=e.headersList.get("location",!0);return t!==null&&hl(t)&&(Cl(t)||(t=Sp(t)),t=new URL(t,Il(e))),t&&!t.hash&&(t.hash=A),t}function Cl(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>126||t<32)return!1}return!0}function Sp(e){return Buffer.from(e,"binary").toString("utf8")}function Jr(e){return e.urlList[e.urlList.length-1]}function Np(e){let A=Jr(e);return ml(A)&&fp.has(A.port)?"blocked":"allowed"}function Up(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function Mp(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}var Lp=Ql;function hl(e){return(e[0]===" "||e[0]===" "||e[e.length-1]===" "||e[e.length-1]===" "||e.includes(`
2
- `)||e.includes("\r")||e.includes("\0"))===!1}function Tp(e,A){let{headersList:t}=A,r=(t.get("referrer-policy",!0)??"").split(","),n="";if(r.length>0)for(let s=r.length;s!==0;s--){let o=r[s-1].trim();if(dp.has(o)){n=o;break}}n!==""&&(e.referrerPolicy=n)}function xp(){return"allowed"}function Yp(){return"success"}function Gp(){return"success"}function Jp(e){let A=null;A=e.mode,e.headersList.set("sec-fetch-mode",A,!0)}function vp(e){let A=e.origin;if(!(A==="client"||A===void 0)){if(e.responseTainting==="cors"||e.mode==="websocket")e.headersList.append("origin",A,!0);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":A=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&vi(e.origin)&&!vi(Jr(e))&&(A=null);break;case"same-origin":es(e,Jr(e))||(A=null);break;default:}e.headersList.append("origin",A,!0)}}}function vt(e,A){return e}function Hp(e,A,t){return!e?.startTime||e.startTime<A?{domainLookupStartTime:A,domainLookupEndTime:A,connectionStartTime:A,connectionEndTime:A,secureConnectionStartTime:A,ALPNNegotiatedProtocol:e?.ALPNNegotiatedProtocol}:{domainLookupStartTime:vt(e.domainLookupStartTime,t),domainLookupEndTime:vt(e.domainLookupEndTime,t),connectionStartTime:vt(e.connectionStartTime,t),connectionEndTime:vt(e.connectionEndTime,t),secureConnectionStartTime:vt(e.secureConnectionStartTime,t),ALPNNegotiatedProtocol:e.ALPNNegotiatedProtocol}}function Vp(e){return vt(yp.now(),e)}function qp(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function dl(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function Op(e){return{referrerPolicy:e.referrerPolicy}}function Wp(e){let A=e.referrerPolicy;tt(A);let t=null;if(e.referrer==="client"){let i=El();if(!i||i.origin==="null")return"no-referrer";t=new URL(i)}else e.referrer instanceof URL&&(t=e.referrer);let r=Ji(t),n=Ji(t,!0);r.toString().length>4096&&(r=n);let s=es(e,r),o=Gr(r)&&!Gr(e.url);switch(A){case"origin":return n??Ji(t,!0);case"unsafe-url":return r;case"same-origin":return s?n:"no-referrer";case"origin-when-cross-origin":return s?r:n;case"strict-origin-when-cross-origin":{let i=Jr(e);return es(r,i)?r:Gr(r)&&!Gr(i)?"no-referrer":n}default:return o?"no-referrer":n}}function Ji(e,A){return tt(e instanceof URL),e=new URL(e),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",A&&(e.pathname="",e.search=""),e)}function Gr(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return A(e.origin);function A(t){if(t==null||t==="null")return!1;let r=new URL(t);return!!(r.protocol==="https:"||r.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(r.hostname)||r.hostname==="localhost"||r.hostname.includes("localhost.")||r.hostname.endsWith(".localhost"))}}function Pp(e,A){if($n===void 0)return!0;let t=fl(A);if(t==="no metadata"||t.length===0)return!0;let r=Zp(t),n=zp(t,r);for(let s of n){let o=s.algo,i=s.hash,a=$n.createHash(o).update(e).digest("base64");if(a[a.length-1]==="="&&(a[a.length-2]==="="?a=a.slice(0,-2):a=a.slice(0,-1)),Kp(a,i))return!0}return!1}var _p=/(?<algo>sha256|sha384|sha512)-((?<hash>[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function fl(e){let A=[],t=!0;for(let r of e.split(" ")){t=!1;let n=_p.exec(r);if(n===null||n.groups===void 0||n.groups.algo===void 0)continue;let s=n.groups.algo.toLowerCase();Bl.includes(s)&&A.push(n.groups)}return t===!0?"no metadata":A}function Zp(e){let A=e[0].algo;if(A[3]==="5")return A;for(let t=1;t<e.length;++t){let r=e[t];if(r.algo[3]==="5"){A="sha512";break}else{if(A[3]==="3")continue;r.algo[3]==="3"&&(A="sha384")}}return A}function zp(e,A){if(e.length===1)return e;let t=0;for(let r=0;r<e.length;++r)e[r].algo===A&&(e[t++]=e[r]);return e.length=t,e}function Kp(e,A){if(e.length!==A.length)return!1;for(let t=0;t<e.length;++t)if(e[t]!==A[t]){if(e[t]==="+"&&A[t]==="-"||e[t]==="/"&&A[t]==="_")continue;return!1}return!0}function Xp(e){}function es(e,A){return e.origin===A.origin&&e.origin==="null"||e.protocol===A.protocol&&e.hostname===A.hostname&&e.port===A.port}function jp(){let e,A;return{promise:new Promise((r,n)=>{e=r,A=n}),resolve:e,reject:A}}function $p(e){return e.controller.state==="aborted"}function ew(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function Aw(e){return kp[e.toLowerCase()]??e}function tw(e){let A=JSON.stringify(e);if(A===void 0)throw new TypeError("Value is not JSON serializable");return tt(typeof A=="string"),A}var rw=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function pl(e,A,t=0,r=1){class n{#e;#A;#t;constructor(o,i){this.#e=o,this.#A=i,this.#t=0}next(){if(typeof this!="object"||this===null||!(#e in this))throw new TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let o=this.#t,i=this.#e[A],a=i.length;if(o>=a)return{value:void 0,done:!0};let{[t]:c,[r]:l}=i[o];this.#t=o+1;let u;switch(this.#A){case"key":u=c;break;case"value":u=l;break;case"key+value":u=[c,l];break}return{value:u,done:!1}}}return delete n.prototype.constructor,Object.setPrototypeOf(n.prototype,rw),Object.defineProperties(n.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${e} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(s,o){return new n(s,o)}}function nw(e,A,t,r=0,n=1){let s=pl(e,t,r,n),o={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return Yr.brandCheck(this,A),s(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return Yr.brandCheck(this,A),s(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return Yr.brandCheck(this,A),s(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(a,c=globalThis){if(Yr.brandCheck(this,A),Yr.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof a!="function")throw new TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:l,1:u}of s(this,"key+value"))a.call(c,u,l,this)}}};return Object.defineProperties(A.prototype,{...o,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:o.entries.value}})}async function sw(e,A,t){let r=A,n=t,s;try{s=e.stream.getReader()}catch(o){n(o);return}try{r(await wl(s))}catch(o){n(o)}}function ow(e){return e instanceof ReadableStream||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}function iw(e){try{e.close(),e.byobRequest?.respond(0)}catch(A){if(!A.message.includes("Controller is already closed")&&!A.message.includes("ReadableStream is already closed"))throw A}}var aw=/[^\x00-\xFF]/;function jn(e){return tt(!aw.test(e)),e}async function wl(e){let A=[],t=0;for(;;){let{done:r,value:n}=await e.read();if(r)return Buffer.concat(A,t);if(!Fp(n))throw new TypeError("Received non-Uint8Array chunk");A.push(n),t+=n.length}}function cw(e){tt("protocol"in e);let A=e.protocol;return A==="about:"||A==="blob:"||A==="data:"}function vi(e){return typeof e=="string"&&e[5]===":"&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&e[4]==="s"||e.protocol==="https:"}function ml(e){tt("protocol"in e);let A=e.protocol;return A==="http:"||A==="https:"}function gw(e,A){let t=e;if(!t.startsWith("bytes"))return"failure";let r={position:5};if(A&&At(a=>a===" "||a===" ",t,r),t.charCodeAt(r.position)!==61)return"failure";r.position++,A&&At(a=>a===" "||a===" ",t,r);let n=At(a=>{let c=a.charCodeAt(0);return c>=48&&c<=57},t,r),s=n.length?Number(n):null;if(A&&At(a=>a===" "||a===" ",t,r),t.charCodeAt(r.position)!==45)return"failure";r.position++,A&&At(a=>a===" "||a===" ",t,r);let o=At(a=>{let c=a.charCodeAt(0);return c>=48&&c<=57},t,r),i=o.length?Number(o):null;return r.position<t.length||i===null&&s===null||s>i?"failure":{rangeStartValue:s,rangeEndValue:i}}function uw(e,A,t){let r="bytes ";return r+=jn(`${e}`),r+="-",r+=jn(`${A}`),r+="/",r+=jn(`${t}`),r}var Hi=class extends Cp{#e;constructor(A){super(),this.#e=A}_transform(A,t,r){if(!this._inflateStream){if(A.length===0){r();return}this._inflateStream=(A[0]&15)===8?ll.createInflate(this.#e):ll.createInflateRaw(this.#e),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",n=>this.destroy(n))}this._inflateStream.write(A,t,r)}_final(A){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),A()}};function lw(e){return new Hi(e)}function Ew(e){let A=null,t=null,r=null,n=yl("content-type",e);if(n===null)return"failure";for(let s of n){let o=mp(s);o==="failure"||o.essence==="*/*"||(r=o,r.essence!==t?(A=null,r.parameters.has("charset")&&(A=r.parameters.get("charset")),t=r.essence):!r.parameters.has("charset")&&A!==null&&r.parameters.set("charset",A))}return r??"failure"}function Qw(e){let A=e,t={position:0},r=[],n="";for(;t.position<A.length;){if(n+=At(s=>s!=='"'&&s!==",",A,t),t.position<A.length)if(A.charCodeAt(t.position)===34){if(n+=pp(A,t),t.position<A.length)continue}else tt(A.charCodeAt(t.position)===44),t.position++;n=wp(n,!0,!0,s=>s===9||s===32),r.push(n),n=""}return r}function yl(e,A){let t=A.get(e,!0);return t===null?null:Qw(t)}var Bw=new TextDecoder;function Iw(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),Bw.decode(e))}var Vi=class{get baseUrl(){return El()}get origin(){return this.baseUrl?.origin}policyContainer=dl()},qi=class{settingsObject=new Vi},Cw=new qi;Dl.exports={isAborted:$p,isCancelled:ew,isValidEncodedURL:Cl,createDeferredPromise:jp,ReadableStreamFrom:bp,tryUpgradeRequestToAPotentiallyTrustworthyURL:Xp,clampAndCoarsenConnectionTimingInfo:Hp,coarsenedSharedCurrentTime:Vp,determineRequestsReferrer:Wp,makePolicyContainer:dl,clonePolicyContainer:Op,appendFetchMetadata:Jp,appendRequestOriginHeader:vp,TAOCheck:Gp,corsCheck:Yp,crossOriginResourcePolicyCheck:xp,createOpaqueTimingInfo:qp,setRequestReferrerPolicyOnRedirect:Tp,isValidHTTPToken:Ql,requestBadPort:Np,requestCurrentURL:Jr,responseURL:Il,responseLocationURL:Rp,isBlobLike:Dp,isURLPotentiallyTrustworthy:Gr,isValidReasonPhrase:Mp,sameOrigin:es,normalizeMethod:Aw,serializeJavascriptValueToJSONString:tw,iteratorMixin:nw,createIterator:pl,isValidHeaderName:Lp,isValidHeaderValue:hl,isErrorLike:Up,fullyReadBody:sw,bytesMatch:Pp,isReadableStreamLike:ow,readableStreamClose:iw,isomorphicEncode:jn,urlIsLocal:cw,urlHasHttpsScheme:vi,urlIsHttpHttpsScheme:ml,readAllBytes:wl,simpleRangeHeaderValue:gw,buildContentRange:uw,parseMetadata:fl,createInflate:lw,extractMimeType:Ew,getDecodeSplit:yl,utf8DecodeBytes:Iw,environmentSettingsObject:Cw}});var LA=f((oT,bl)=>{"use strict";bl.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}});var Wi=f((iT,kl)=>{"use strict";var{Blob:hw,File:dw}=d("node:buffer"),{kState:dA}=LA(),{webidl:rA}=ue(),Oi=class e{constructor(A,t,r={}){let n=t,s=r.type,o=r.lastModified??Date.now();this[dA]={blobLike:A,name:n,type:s,lastModified:o}}stream(...A){return rA.brandCheck(this,e),this[dA].blobLike.stream(...A)}arrayBuffer(...A){return rA.brandCheck(this,e),this[dA].blobLike.arrayBuffer(...A)}slice(...A){return rA.brandCheck(this,e),this[dA].blobLike.slice(...A)}text(...A){return rA.brandCheck(this,e),this[dA].blobLike.text(...A)}get size(){return rA.brandCheck(this,e),this[dA].blobLike.size}get type(){return rA.brandCheck(this,e),this[dA].blobLike.type}get name(){return rA.brandCheck(this,e),this[dA].name}get lastModified(){return rA.brandCheck(this,e),this[dA].lastModified}get[Symbol.toStringTag](){return"File"}};rA.converters.Blob=rA.interfaceConverter(hw);function fw(e){return e instanceof dw||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}kl.exports={FileLike:Oi,isFileLike:fw}});var Hr=f((aT,Ul)=>{"use strict";var{isBlobLike:As,iteratorMixin:pw}=be(),{kState:Ie}=LA(),{kEnumerableProperty:Ht}=x(),{FileLike:Fl,isFileLike:ww}=Wi(),{webidl:z}=ue(),{File:Nl}=d("node:buffer"),Rl=d("node:util"),Sl=globalThis.File??Nl,vr=class e{constructor(A){if(z.util.markAsUncloneable(this),A!==void 0)throw z.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[Ie]=[]}append(A,t,r=void 0){z.brandCheck(this,e);let n="FormData.append";if(z.argumentLengthCheck(arguments,2,n),arguments.length===3&&!As(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");A=z.converters.USVString(A,n,"name"),t=As(t)?z.converters.Blob(t,n,"value",{strict:!1}):z.converters.USVString(t,n,"value"),r=arguments.length===3?z.converters.USVString(r,n,"filename"):void 0;let s=Pi(A,t,r);this[Ie].push(s)}delete(A){z.brandCheck(this,e);let t="FormData.delete";z.argumentLengthCheck(arguments,1,t),A=z.converters.USVString(A,t,"name"),this[Ie]=this[Ie].filter(r=>r.name!==A)}get(A){z.brandCheck(this,e);let t="FormData.get";z.argumentLengthCheck(arguments,1,t),A=z.converters.USVString(A,t,"name");let r=this[Ie].findIndex(n=>n.name===A);return r===-1?null:this[Ie][r].value}getAll(A){z.brandCheck(this,e);let t="FormData.getAll";return z.argumentLengthCheck(arguments,1,t),A=z.converters.USVString(A,t,"name"),this[Ie].filter(r=>r.name===A).map(r=>r.value)}has(A){z.brandCheck(this,e);let t="FormData.has";return z.argumentLengthCheck(arguments,1,t),A=z.converters.USVString(A,t,"name"),this[Ie].findIndex(r=>r.name===A)!==-1}set(A,t,r=void 0){z.brandCheck(this,e);let n="FormData.set";if(z.argumentLengthCheck(arguments,2,n),arguments.length===3&&!As(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");A=z.converters.USVString(A,n,"name"),t=As(t)?z.converters.Blob(t,n,"name",{strict:!1}):z.converters.USVString(t,n,"name"),r=arguments.length===3?z.converters.USVString(r,n,"name"):void 0;let s=Pi(A,t,r),o=this[Ie].findIndex(i=>i.name===A);o!==-1?this[Ie]=[...this[Ie].slice(0,o),s,...this[Ie].slice(o+1).filter(i=>i.name!==A)]:this[Ie].push(s)}[Rl.inspect.custom](A,t){let r=this[Ie].reduce((s,o)=>(s[o.name]?Array.isArray(s[o.name])?s[o.name].push(o.value):s[o.name]=[s[o.name],o.value]:s[o.name]=o.value,s),{__proto__:null});t.depth??=A,t.colors??=!0;let n=Rl.formatWithOptions(t,r);return`FormData ${n.slice(n.indexOf("]")+2)}`}};pw("FormData",vr,Ie,"name","value");Object.defineProperties(vr.prototype,{append:Ht,delete:Ht,get:Ht,getAll:Ht,has:Ht,set:Ht,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function Pi(e,A,t){if(typeof A!="string"){if(ww(A)||(A=A instanceof Blob?new Sl([A],"blob",{type:A.type}):new Fl(A,"blob",{type:A.type})),t!==void 0){let r={type:A.type,lastModified:A.lastModified};A=A instanceof Nl?new Sl([A],t,r):new Fl(A,t,r)}}return{name:e,value:A}}Ul.exports={FormData:vr,makeEntry:Pi}});var Gl=f((cT,Yl)=>{"use strict";var{isUSVString:Ml,bufferToLowerCasedHeaderName:mw}=x(),{utf8DecodeBytes:yw}=be(),{HTTP_TOKEN_CODEPOINTS:Dw,isomorphicDecode:Ll}=de(),{isFileLike:bw}=Wi(),{makeEntry:kw}=Hr(),ts=d("node:assert"),{File:Fw}=d("node:buffer"),Rw=globalThis.File??Fw,Sw=Buffer.from('form-data; name="'),Tl=Buffer.from("; filename"),Nw=Buffer.from("--"),Uw=Buffer.from(`--\r
3
- `);function Mw(e){for(let A=0;A<e.length;++A)if((e.charCodeAt(A)&-128)!==0)return!1;return!0}function Lw(e){let A=e.length;if(A<27||A>70)return!1;for(let t=0;t<A;++t){let r=e.charCodeAt(t);if(!(r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||r===39||r===45||r===95))return!1}return!0}function Tw(e,A){ts(A!=="failure"&&A.essence==="multipart/form-data");let t=A.parameters.get("boundary");if(t===void 0)return"failure";let r=Buffer.from(`--${t}`,"utf8"),n=[],s={position:0};for(;e[s.position]===13&&e[s.position+1]===10;)s.position+=2;let o=e.length;for(;e[o-1]===10&&e[o-2]===13;)o-=2;for(o!==e.length&&(e=e.subarray(0,o));;){if(e.subarray(s.position,s.position+r.length).equals(r))s.position+=r.length;else return"failure";if(s.position===e.length-2&&rs(e,Nw,s)||s.position===e.length-4&&rs(e,Uw,s))return n;if(e[s.position]!==13||e[s.position+1]!==10)return"failure";s.position+=2;let i=xw(e,s);if(i==="failure")return"failure";let{name:a,filename:c,contentType:l,encoding:u}=i;s.position+=2;let g;{let Q=e.indexOf(r.subarray(2),s.position);if(Q===-1)return"failure";g=e.subarray(s.position,Q-4),s.position+=g.length,u==="base64"&&(g=Buffer.from(g.toString(),"base64"))}if(e[s.position]!==13||e[s.position+1]!==10)return"failure";s.position+=2;let E;c!==null?(l??="text/plain",Mw(l)||(l=""),E=new Rw([g],c,{type:l})):E=yw(Buffer.from(g)),ts(Ml(a)),ts(typeof E=="string"&&Ml(E)||bw(E)),n.push(kw(a,E,c))}}function xw(e,A){let t=null,r=null,n=null,s=null;for(;;){if(e[A.position]===13&&e[A.position+1]===10)return t===null?"failure":{name:t,filename:r,contentType:n,encoding:s};let o=Vt(i=>i!==10&&i!==13&&i!==58,e,A);if(o=_i(o,!0,!0,i=>i===9||i===32),!Dw.test(o.toString())||e[A.position]!==58)return"failure";switch(A.position++,Vt(i=>i===32||i===9,e,A),mw(o)){case"content-disposition":{if(t=r=null,!rs(e,Sw,A)||(A.position+=17,t=xl(e,A),t===null))return"failure";if(rs(e,Tl,A)){let i=A.position+Tl.length;if(e[i]===42&&(A.position+=1,i+=1),e[i]!==61||e[i+1]!==34||(A.position+=12,r=xl(e,A),r===null))return"failure"}break}case"content-type":{let i=Vt(a=>a!==10&&a!==13,e,A);i=_i(i,!1,!0,a=>a===9||a===32),n=Ll(i);break}case"content-transfer-encoding":{let i=Vt(a=>a!==10&&a!==13,e,A);i=_i(i,!1,!0,a=>a===9||a===32),s=Ll(i);break}default:Vt(i=>i!==10&&i!==13,e,A)}if(e[A.position]!==13&&e[A.position+1]!==10)return"failure";A.position+=2}}function xl(e,A){ts(e[A.position-1]===34);let t=Vt(r=>r!==10&&r!==13&&r!==34,e,A);return e[A.position]!==34?null:(A.position++,t=new TextDecoder().decode(t).replace(/%0A/ig,`
4
- `).replace(/%0D/ig,"\r").replace(/%22/g,'"'),t)}function Vt(e,A,t){let r=t.position;for(;r<A.length&&e(A[r]);)++r;return A.subarray(t.position,t.position=r)}function _i(e,A,t,r){let n=0,s=e.length-1;if(A)for(;n<e.length&&r(e[n]);)n++;if(t)for(;s>0&&r(e[s]);)s--;return n===0&&s===e.length-1?e:e.subarray(n,s+1)}function rs(e,A,t){if(e.length<A.length)return!1;for(let r=0;r<A.length;r++)if(A[r]!==e[t.position+r])return!1;return!0}Yl.exports={multipartFormDataParser:Tw,validateBoundary:Lw}});var Wt=f((gT,Zl)=>{"use strict";var Vr=x(),{ReadableStreamFrom:Yw,isBlobLike:Jl,isReadableStreamLike:Gw,readableStreamClose:Jw,createDeferredPromise:vw,fullyReadBody:Hw,extractMimeType:Vw,utf8DecodeBytes:Vl}=be(),{FormData:vl}=Hr(),{kState:Ot}=LA(),{webidl:qw}=ue(),{Blob:Ow}=d("node:buffer"),Zi=d("node:assert"),{isErrored:ql,isDisturbed:Ww}=d("node:stream"),{isArrayBuffer:Pw}=d("node:util/types"),{serializeAMimeType:_w}=de(),{multipartFormDataParser:Zw}=Gl(),zi;try{let e=d("node:crypto");zi=A=>e.randomInt(0,A)}catch{zi=e=>Math.floor(Math.random(e))}var ns=new TextEncoder;function zw(){}var Ol=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,Wl;Ol&&(Wl=new FinalizationRegistry(e=>{let A=e.deref();A&&!A.locked&&!Ww(A)&&!ql(A)&&A.cancel("Response object has been garbage collected").catch(zw)}));function Pl(e,A=!1){let t=null;e instanceof ReadableStream?t=e:Jl(e)?t=e.stream():t=new ReadableStream({async pull(a){let c=typeof n=="string"?ns.encode(n):n;c.byteLength&&a.enqueue(c),queueMicrotask(()=>Jw(a))},start(){},type:"bytes"}),Zi(Gw(t));let r=null,n=null,s=null,o=null;if(typeof e=="string")n=e,o="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)n=e.toString(),o="application/x-www-form-urlencoded;charset=UTF-8";else if(Pw(e))n=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))n=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(Vr.isFormDataLike(e)){let a=`----formdata-undici-0${`${zi(1e11)}`.padStart(11,"0")}`,c=`--${a}\r
5
- Content-Disposition: form-data`;let l=C=>C.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),u=C=>C.replace(/\r?\n|\r/g,`\r
6
- `),g=[],E=new Uint8Array([13,10]);s=0;let Q=!1;for(let[C,B]of e)if(typeof B=="string"){let h=ns.encode(c+`; name="${l(u(C))}"\r
7
- \r
8
- ${u(B)}\r
9
- `);g.push(h),s+=h.byteLength}else{let h=ns.encode(`${c}; name="${l(u(C))}"`+(B.name?`; filename="${l(B.name)}"`:"")+`\r
10
- Content-Type: ${B.type||"application/octet-stream"}\r
11
- \r
12
- `);g.push(h,B,E),typeof B.size=="number"?s+=h.byteLength+B.size+E.byteLength:Q=!0}let I=ns.encode(`--${a}--\r
13
- `);g.push(I),s+=I.byteLength,Q&&(s=null),n=e,r=async function*(){for(let C of g)C.stream?yield*C.stream():yield C},o=`multipart/form-data; boundary=${a}`}else if(Jl(e))n=e,s=e.size,e.type&&(o=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(A)throw new TypeError("keepalive");if(Vr.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");t=e instanceof ReadableStream?e:Yw(e)}if((typeof n=="string"||Vr.isBuffer(n))&&(s=Buffer.byteLength(n)),r!=null){let a;t=new ReadableStream({async start(){a=r(e)[Symbol.asyncIterator]()},async pull(c){let{value:l,done:u}=await a.next();if(u)queueMicrotask(()=>{c.close(),c.byobRequest?.respond(0)});else if(!ql(t)){let g=new Uint8Array(l);g.byteLength&&c.enqueue(g)}return c.desiredSize>0},async cancel(c){await a.return()},type:"bytes"})}return[{stream:t,source:n,length:s},o]}function Kw(e,A=!1){return e instanceof ReadableStream&&(Zi(!Vr.isDisturbed(e),"The body has already been consumed."),Zi(!e.locked,"The stream is locked.")),Pl(e,A)}function Xw(e,A){let[t,r]=A.stream.tee();return A.stream=t,{stream:r,length:A.length,source:A.source}}function jw(e){if(e.aborted)throw new DOMException("The operation was aborted.","AbortError")}function $w(e){return{blob(){return qt(this,t=>{let r=Hl(this);return r===null?r="":r&&(r=_w(r)),new Ow([t],{type:r})},e)},arrayBuffer(){return qt(this,t=>new Uint8Array(t).buffer,e)},text(){return qt(this,Vl,e)},json(){return qt(this,Am,e)},formData(){return qt(this,t=>{let r=Hl(this);if(r!==null)switch(r.essence){case"multipart/form-data":{let n=Zw(t,r);if(n==="failure")throw new TypeError("Failed to parse body as FormData.");let s=new vl;return s[Ot]=n,s}case"application/x-www-form-urlencoded":{let n=new URLSearchParams(t.toString()),s=new vl;for(let[o,i]of n)s.append(o,i);return s}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},e)},bytes(){return qt(this,t=>new Uint8Array(t),e)}}}function em(e){Object.assign(e.prototype,$w(e))}async function qt(e,A,t){if(qw.brandCheck(e,t),_l(e))throw new TypeError("Body is unusable: Body has already been read");jw(e[Ot]);let r=vw(),n=o=>r.reject(o),s=o=>{try{r.resolve(A(o))}catch(i){n(i)}};return e[Ot].body==null?(s(Buffer.allocUnsafe(0)),r.promise):(await Hw(e[Ot].body,s,n),r.promise)}function _l(e){let A=e[Ot].body;return A!=null&&(A.stream.locked||Vr.isDisturbed(A.stream))}function Am(e){return JSON.parse(Vl(e))}function Hl(e){let A=e[Ot].headersList,t=Vw(A);return t==="failure"?null:t}Zl.exports={extractBody:Pl,safelyExtractBody:Kw,cloneBody:Xw,mixinBody:em,streamRegistry:Wl,hasFinalizationRegistry:Ol,bodyUnusable:_l}});var gE=f((uT,cE)=>{"use strict";var k=d("node:assert"),R=x(),{channels:zl}=Ut(),Ki=Ni(),{RequestContentLengthMismatchError:rt,ResponseContentLengthMismatchError:Kl,RequestAbortedError:nE,InvalidArgumentError:tm,HeadersTimeoutError:rm,HeadersOverflowError:nm,SocketError:Pt,InformationalError:_t,BodyTimeoutError:sm,HTTPParserError:om,ResponseExceededMaxSizeError:im}=v(),{kUrl:sE,kReset:fe,kClient:as,kParser:K,kBlocking:Wr,kRunning:oe,kPending:oE,kSize:Xl,kWriting:TA,kQueue:qe,kNoRef:qr,kKeepAliveDefaultTimeout:am,kHostHeader:cm,kPendingIdx:gm,kRunningIdx:Ge,kError:Ce,kPipelining:cs,kSocket:st,kKeepAliveTimeoutValue:us,kMaxHeadersSize:Xi,kKeepAliveMaxTimeout:um,kKeepAliveTimeoutThreshold:lm,kHeadersTimeout:Em,kBodyTimeout:Qm,kStrictContentLength:ea,kMaxRequests:jl,kCounter:Bm,kMaxResponseSize:Im,kOnError:$l,kResume:fA,kHTTPContext:iE}=j(),ke=Wu(),eE=Buffer.alloc(0),ss=Buffer[Symbol.species],os=R.addListener,Cm=R.removeAllListeners,ot=Symbol("kIdleSocketValidation"),nt=Symbol("kIdleSocketValidationTimeout"),na=Symbol("kSocketUsed"),ji;async function hm(){let e=process.env.JEST_WORKER_ID?Li():void 0,A;try{A=await WebAssembly.compile(Zu())}catch{A=await WebAssembly.compile(e||Li())}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(t,r,n)=>0,wasm_on_status:(t,r,n)=>{k(Ae.ptr===t);let s=r-sA+nA.byteOffset;return Ae.onStatus(new ss(nA.buffer,s,n))||0},wasm_on_message_begin:t=>(k(Ae.ptr===t),Ae.onMessageBegin()||0),wasm_on_header_field:(t,r,n)=>{k(Ae.ptr===t);let s=r-sA+nA.byteOffset;return Ae.onHeaderField(new ss(nA.buffer,s,n))||0},wasm_on_header_value:(t,r,n)=>{k(Ae.ptr===t);let s=r-sA+nA.byteOffset;return Ae.onHeaderValue(new ss(nA.buffer,s,n))||0},wasm_on_headers_complete:(t,r,n,s)=>(k(Ae.ptr===t),Ae.onHeadersComplete(r,!!n,!!s)||0),wasm_on_body:(t,r,n)=>{k(Ae.ptr===t);let s=r-sA+nA.byteOffset;return Ae.onBody(new ss(nA.buffer,s,n))||0},wasm_on_message_complete:t=>(k(Ae.ptr===t),Ae.onMessageComplete()||0)}})}var $i=null,Aa=hm();Aa.catch();var Ae=null,nA=null,is=0,sA=null,dm=0,Or=1,Zt=2|Or,gs=4|Or,ta=8|dm,ra=class{constructor(A,t,{exports:r}){k(Number.isFinite(A[Xi])&&A[Xi]>0),this.llhttp=r,this.ptr=this.llhttp.llhttp_alloc(ke.TYPE.RESPONSE),this.client=A,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=A[Xi],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[Im]}setTimeout(A,t){A!==this.timeoutValue||t&Or^this.timeoutType&Or?(this.timeout&&(Ki.clearTimeout(this.timeout),this.timeout=null),A&&(t&Or?this.timeout=Ki.setFastTimeout(AE,A,new WeakRef(this)):(this.timeout=setTimeout(AE,A,new WeakRef(this)),this.timeout.unref())),this.timeoutValue=A):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=t}resume(){this.socket.destroyed||!this.paused||(k(this.ptr!=null),k(Ae==null),this.llhttp.llhttp_resume(this.ptr),k(this.timeoutType===gs),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||eE),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let A=this.socket.read();if(A===null)break;this.execute(A)}}execute(A){k(this.ptr!=null),k(Ae==null),k(!this.paused);let{socket:t,llhttp:r}=this;A.length>is&&(sA&&r.free(sA),is=Math.ceil(A.length/4096)*4096,sA=r.malloc(is)),new Uint8Array(r.memory.buffer,sA,is).set(A);try{let n;try{nA=A,Ae=this,n=r.llhttp_execute(this.ptr,sA,A.length)}catch(o){throw o}finally{Ae=null,nA=null}let s=r.llhttp_get_error_pos(this.ptr)-sA;if(n!==ke.ERROR.OK){let o=A.subarray(s);if(n===ke.ERROR.PAUSED_UPGRADE)this.onUpgrade(o);else if(n===ke.ERROR.PAUSED)this.paused=!0,t.unshift(o);else throw this.createError(n,o)}}catch(n){R.destroy(t,n)}}finish(){k(Ae===null),k(this.ptr!=null),k(!this.paused);let{llhttp:A}=this,t;try{Ae=this,t=A.llhttp_finish(this.ptr)}finally{Ae=null}return t===ke.ERROR.OK?null:t===ke.ERROR.PAUSED||t===ke.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(t,eE)}createError(A,t){let{llhttp:r,contentLength:n,bytesRead:s}=this;if(n&&s!==parseInt(n,10))return new Kl;let o=r.llhttp_get_error_reason(this.ptr),i="";if(o){let a=new Uint8Array(r.memory.buffer,o).indexOf(0);i="Response does not match the HTTP/1.1 protocol ("+Buffer.from(r.memory.buffer,o,a).toString()+")"}return new om(i,ke.ERROR[A],t)}destroy(){k(this.ptr!=null),k(Ae==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&Ki.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(A){this.statusText=A.toString()}onMessageBegin(){let{socket:A,client:t}=this;if(A.destroyed)return-1;if(t[oe]===0)return R.destroy(A,new Pt("bad response",R.getSocketInfo(A))),-1;let r=t[qe][t[Ge]];if(!r)return-1;r.onResponseStarted()}onHeaderField(A){let t=this.headers.length;(t&1)===0?this.headers.push(A):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]),this.trackHeader(A.length)}onHeaderValue(A){let t=this.headers.length;(t&1)===1?(this.headers.push(A),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]);let r=this.headers[t-2];if(r.length===10){let n=R.bufferToLowerCasedHeaderName(r);n==="keep-alive"?this.keepAlive+=A.toString():n==="connection"&&(this.connection+=A.toString())}else r.length===14&&R.bufferToLowerCasedHeaderName(r)==="content-length"&&(this.contentLength+=A.toString());this.trackHeader(A.length)}trackHeader(A){this.headersSize+=A,this.headersSize>=this.headersMaxSize&&R.destroy(this.socket,new nm)}onUpgrade(A){let{upgrade:t,client:r,socket:n,headers:s,statusCode:o}=this;k(t),k(r[st]===n),k(!n.destroyed),k(!this.paused),k((s.length&1)===0);let i=r[qe][r[Ge]];k(i),k(i.upgrade||i.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,this.headers=[],this.headersSize=0,n.unshift(A),n[K].destroy(),n[K]=null,n[as]=null,n[Ce]=null,Cm(n),r[st]=null,r[iE]=null,r[qe][r[Ge]++]=null,r.emit("disconnect",r[sE],[r],new _t("upgrade"));try{i.onUpgrade(o,s,n)}catch(a){R.destroy(n,a)}r[fA]()}onHeadersComplete(A,t,r){let{client:n,socket:s,headers:o,statusText:i}=this;if(s.destroyed)return-1;if(n[oe]===0)return R.destroy(s,new Pt("bad response",R.getSocketInfo(s))),-1;let a=n[qe][n[Ge]];if(!a)return-1;if(k(!this.upgrade),k(this.statusCode<200),A===100)return R.destroy(s,new Pt("bad response",R.getSocketInfo(s))),-1;if(t&&!a.upgrade)return R.destroy(s,new Pt("bad upgrade",R.getSocketInfo(s))),-1;if(k(this.timeoutType===Zt),this.statusCode=A,this.shouldKeepAlive=r||a.method==="HEAD"&&!s[fe]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let l=a.bodyTimeout!=null?a.bodyTimeout:n[Qm];this.setTimeout(l,gs)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(a.method==="CONNECT")return k(n[oe]===1),this.upgrade=!0,2;if(t)return k(n[oe]===1),this.upgrade=!0,2;if(k((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&n[cs]){let l=this.keepAlive?R.parseKeepAliveTimeout(this.keepAlive):null;if(l!=null){let u=Math.min(l-n[lm],n[um]);u<=0?s[fe]=!0:n[us]=u}else n[us]=n[am]}else s[fe]=!0;let c=a.onHeaders(A,o,this.resume,i)===!1;return a.aborted?-1:a.method==="HEAD"||A<200?1:(s[Wr]&&(s[Wr]=!1,n[fA]()),c?ke.ERROR.PAUSED:0)}onBody(A){let{client:t,socket:r,statusCode:n,maxResponseSize:s}=this;if(r.destroyed)return-1;let o=t[qe][t[Ge]];if(k(o),k(this.timeoutType===gs),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),k(n>=200),s>-1&&this.bytesRead+A.length>s)return R.destroy(r,new im),-1;if(this.bytesRead+=A.length,o.onData(A)===!1)return ke.ERROR.PAUSED}onMessageComplete(){let{client:A,socket:t,statusCode:r,upgrade:n,headers:s,contentLength:o,bytesRead:i,shouldKeepAlive:a}=this;if(t.destroyed&&(!r||a))return-1;if(n)return;k(r>=100),k((this.headers.length&1)===0);let c=A[qe][A[Ge]];if(k(c),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,!(r<200)){if(c.method!=="HEAD"&&o&&i!==parseInt(o,10))return R.destroy(t,new Kl),-1;if(c.onComplete(s),A[qe][A[Ge]++]=null,t[na]=!0,t[TA])return k(A[oe]===0),R.destroy(t,new _t("reset")),ke.ERROR.PAUSED;if(a){if(t[fe]&&A[oe]===0)return R.destroy(t,new _t("reset")),ke.ERROR.PAUSED;A[cs]==null||A[cs]===1?setImmediate(()=>A[fA]()):A[fA]()}else return R.destroy(t,new _t("reset")),ke.ERROR.PAUSED}}};function AE(e){let{socket:A,timeoutType:t,client:r,paused:n}=e.deref();t===Zt?(!A[TA]||A.writableNeedDrain||r[oe]>1)&&(k(!n,"cannot be paused while waiting for headers"),R.destroy(A,new rm)):t===gs?n||R.destroy(A,new sm):t===ta&&(k(r[oe]===0&&r[us]),R.destroy(A,new _t("socket idle timeout")))}async function fm(e,A){e[st]=A,$i||($i=await Aa,Aa=null),A[qr]=!1,A[TA]=!1,A[fe]=!1,A[Wr]=!1,A[ot]=0,A[nt]=null,A[na]=!1,A[K]=new ra(e,A,$i),os(A,"error",function(r){k(r.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let n=this[K];if(r.code==="ECONNRESET"&&n.statusCode&&!n.shouldKeepAlive){let s=n.finish();s&&(this[Ce]=s,this[as][$l](s));return}this[Ce]=r,this[as][$l](r)}),os(A,"readable",function(){let r=this[K];r&&r.readMore()}),os(A,"end",function(){let r=this[K];if(r.statusCode&&!r.shouldKeepAlive){let n=r.finish();n&&R.destroy(this,n);return}R.destroy(this,new Pt("other side closed",R.getSocketInfo(this)))}),os(A,"close",function(){let r=this[as],n=this[K];aE(this),n&&(!this[Ce]&&n.statusCode&&!n.shouldKeepAlive&&(this[Ce]=n.finish()||this[Ce]),this[K].destroy(),this[K]=null);let s=this[Ce]||new Pt("closed",R.getSocketInfo(this));if(r[st]=null,r[iE]=null,r.destroyed){k(r[oE]===0);let o=r[qe].splice(r[Ge]);for(let i=0;i<o.length;i++){let a=o[i];R.errorRequest(r,a,s)}}else if(r[oe]>0&&s.code!=="UND_ERR_INFO"){let o=r[qe][r[Ge]];r[qe][r[Ge]++]=null,R.errorRequest(r,o,s)}r[gm]=r[Ge],k(r[oe]===0),r.emit("disconnect",r[sE],[r],s),r[fA]()});let t=!1;return A.on("close",()=>{t=!0}),{version:"h1",defaultPipelining:1,write(...r){return ym(e,...r)},resume(){wm(e)},destroy(r,n){t?queueMicrotask(n):A.destroy(r).on("close",n)},get destroyed(){return A.destroyed},busy(r){return!!(A[TA]||A[fe]||A[Wr]||A[ot]===1||r&&(e[oe]>0&&!r.idempotent||e[oe]>0&&(r.upgrade||r.method==="CONNECT")||e[oe]>0&&R.bodyLength(r.body)!==0&&(R.isStream(r.body)||R.isAsyncIterable(r.body)||R.isFormDataLike(r.body))))}}}function aE(e){e[nt]&&(clearTimeout(e[nt]),e[nt]=null),e[ot]=0}function pm(e,A){A[ot]=1,A[nt]=setTimeout(()=>{A[nt]=null,A[ot]=2,e[st]===A&&!A.destroyed&&e[fA]()},0),A[nt].unref?.()}function wm(e){let A=e[st];if(A&&!A.destroyed){if(e[Xl]===0?!A[qr]&&A.unref&&(A.unref(),A[qr]=!0):A[qr]&&A.ref&&(A.ref(),A[qr]=!1),e[oe]===0&&e[oE]>0&&A[na]){if(A[ot]===0)return pm(e,A),A[K].readMore(),A.destroyed,void 0;if(A[ot]===1)return A[K].readMore(),A.destroyed,void 0}if(e[oe]===0&&(A[K].readMore(),A.destroyed))return;if(e[Xl]===0)A[K].timeoutType!==ta&&A[K].setTimeout(e[us],ta);else if(e[oe]>0&&A[K].statusCode<200&&A[K].timeoutType!==Zt){let t=e[qe][e[Ge]],r=t.headersTimeout!=null?t.headersTimeout:e[Em];A[K].setTimeout(r,Zt)}}}function mm(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function ym(e,A){let{method:t,path:r,host:n,upgrade:s,blocking:o,reset:i}=A,{body:a,headers:c,contentLength:l}=A,u=t==="PUT"||t==="POST"||t==="PATCH"||t==="QUERY"||t==="PROPFIND"||t==="PROPPATCH";if(R.isFormDataLike(a)){ji||(ji=Wt().extractBody);let[C,B]=ji(a);A.contentType==null&&c.push("content-type",B),a=C.stream,l=C.length}else if(R.isBlobLike(a)&&A.contentType==null){let C=a.type;if(C){let B=`${C}`;if(!R.isValidHeaderValue(B))return R.errorRequest(e,A,new tm("invalid content-type header")),!1;c.push("content-type",B)}}a&&typeof a.read=="function"&&a.read(0);let g=R.bodyLength(a);if(l=g??l,l===null&&(l=A.contentLength),l===0&&!u&&(l=null),mm(t)&&l>0&&A.contentLength!==null&&A.contentLength!==l){if(e[ea])return R.errorRequest(e,A,new rt),!1;process.emitWarning(new rt)}let E=e[st];aE(E);let Q=C=>{A.aborted||A.completed||(R.errorRequest(e,A,C||new nE),R.destroy(a),R.destroy(E,new _t("aborted")))};try{A.onConnect(Q)}catch(C){R.errorRequest(e,A,C)}if(A.aborted)return!1;t==="HEAD"&&(E[fe]=!0),(s||t==="CONNECT")&&(E[fe]=!0),i!=null&&(E[fe]=i),e[jl]&&E[Bm]++>=e[jl]&&(E[fe]=!0),o&&(E[Wr]=!0);let I=`${t} ${r} HTTP/1.1\r
14
- `;if(typeof n=="string"?I+=`host: ${n}\r
15
- `:I+=e[cm],s?I+=`connection: upgrade\r
16
- upgrade: ${s}\r
17
- `:e[cs]&&!E[fe]?I+=`connection: keep-alive\r
18
- `:I+=`connection: close\r
19
- `,Array.isArray(c))for(let C=0;C<c.length;C+=2){let B=c[C+0],h=c[C+1];if(Array.isArray(h))for(let y=0;y<h.length;y++)I+=`${B}: ${h[y]}\r
20
- `;else I+=`${B}: ${h}\r
21
- `}return zl.sendHeaders.hasSubscribers&&zl.sendHeaders.publish({request:A,headers:I,socket:E}),!a||g===0?tE(Q,null,e,A,E,l,I,u):R.isBuffer(a)?tE(Q,a,e,A,E,l,I,u):R.isBlobLike(a)?typeof a.stream=="function"?rE(Q,a.stream(),e,A,E,l,I,u):bm(Q,a,e,A,E,l,I,u):R.isStream(a)?Dm(Q,a,e,A,E,l,I,u):R.isIterable(a)?rE(Q,a,e,A,E,l,I,u):k(!1),!0}function Dm(e,A,t,r,n,s,o,i){k(s!==0||t[oe]===0,"stream body cannot be pipelined");let a=!1,c=new ls({abort:e,socket:n,request:r,contentLength:s,client:t,expectsPayload:i,header:o}),l=function(Q){if(!a)try{!c.write(Q)&&this.pause&&this.pause()}catch(I){R.destroy(this,I)}},u=function(){a||A.resume&&A.resume()},g=function(){if(queueMicrotask(()=>{A.removeListener("error",E)}),!a){let Q=new nE;queueMicrotask(()=>E(Q))}},E=function(Q){if(!a){if(a=!0,k(n.destroyed||n[TA]&&t[oe]<=1),n.off("drain",u).off("error",E),A.removeListener("data",l).removeListener("end",E).removeListener("close",g),!Q)try{c.end()}catch(I){Q=I}c.destroy(Q),Q&&(Q.code!=="UND_ERR_INFO"||Q.message!=="reset")?R.destroy(A,Q):R.destroy(A)}};A.on("data",l).on("end",E).on("error",E).on("close",g),A.resume&&A.resume(),n.on("drain",u).on("error",E),A.errorEmitted??A.errored?setImmediate(()=>E(A.errored)):(A.endEmitted??A.readableEnded)&&setImmediate(()=>E(null)),(A.closeEmitted??A.closed)&&setImmediate(g)}function tE(e,A,t,r,n,s,o,i){try{A?R.isBuffer(A)&&(k(s===A.byteLength,"buffer body must have content length"),n.cork(),n.write(`${o}content-length: ${s}\r
22
- \r
23
- `,"latin1"),n.write(A),n.uncork(),r.onBodySent(A),!i&&r.reset!==!1&&(n[fe]=!0)):s===0?n.write(`${o}content-length: 0\r
24
- \r
25
- `,"latin1"):(k(s===null,"no body must not have content length"),n.write(`${o}\r
26
- `,"latin1")),r.onRequestSent(),t[fA]()}catch(a){e(a)}}async function bm(e,A,t,r,n,s,o,i){k(s===A.size,"blob body must have content length");try{if(s!=null&&s!==A.size)throw new rt;let a=Buffer.from(await A.arrayBuffer());n.cork(),n.write(`${o}content-length: ${s}\r
27
- \r
28
- `,"latin1"),n.write(a),n.uncork(),r.onBodySent(a),r.onRequestSent(),!i&&r.reset!==!1&&(n[fe]=!0),t[fA]()}catch(a){e(a)}}async function rE(e,A,t,r,n,s,o,i){k(s!==0||t[oe]===0,"iterator body cannot be pipelined");let a=null;function c(){if(a){let g=a;a=null,g()}}let l=()=>new Promise((g,E)=>{k(a===null),n[Ce]?E(n[Ce]):a=g});n.on("close",c).on("drain",c);let u=new ls({abort:e,socket:n,request:r,contentLength:s,client:t,expectsPayload:i,header:o});try{for await(let g of A){if(n[Ce])throw n[Ce];u.write(g)||await l()}u.end()}catch(g){u.destroy(g)}finally{n.off("close",c).off("drain",c)}}var ls=class{constructor({abort:A,socket:t,request:r,contentLength:n,client:s,expectsPayload:o,header:i}){this.socket=t,this.request=r,this.contentLength=n,this.client=s,this.bytesWritten=0,this.expectsPayload=o,this.header=i,this.abort=A,t[TA]=!0}write(A){let{socket:t,request:r,contentLength:n,client:s,bytesWritten:o,expectsPayload:i,header:a}=this;if(t[Ce])throw t[Ce];if(t.destroyed)return!1;let c=Buffer.byteLength(A);if(!c)return!0;if(n!==null&&o+c>n){if(s[ea])throw new rt;process.emitWarning(new rt)}t.cork(),o===0&&(!i&&r.reset!==!1&&(t[fe]=!0),n===null?t.write(`${a}transfer-encoding: chunked\r
29
- `,"latin1"):t.write(`${a}content-length: ${n}\r
30
- \r
31
- `,"latin1")),n===null&&t.write(`\r
32
- ${c.toString(16)}\r
33
- `,"latin1"),this.bytesWritten+=c;let l=t.write(A);return t.uncork(),r.onBodySent(A),l||t[K].timeout&&t[K].timeoutType===Zt&&t[K].timeout.refresh&&t[K].timeout.refresh(),l}end(){let{socket:A,contentLength:t,client:r,bytesWritten:n,expectsPayload:s,header:o,request:i}=this;if(i.onRequestSent(),A[TA]=!1,A[Ce])throw A[Ce];if(!A.destroyed){if(n===0?s?A.write(`${o}content-length: 0\r
34
- \r
35
- `,"latin1"):A.write(`${o}\r
36
- `,"latin1"):t===null&&A.write(`\r
37
- 0\r
38
- \r
39
- `,"latin1"),t!==null&&n!==t){if(r[ea])throw new rt;process.emitWarning(new rt)}A[K].timeout&&A[K].timeoutType===Zt&&A[K].timeout.refresh&&A[K].timeout.refresh(),r[fA]()}}destroy(A){let{socket:t,client:r,abort:n}=this;t[TA]=!1,A&&(k(r[oe]<=1,"pipeline should only contain this request"),n(A))}};cE.exports=fm});var hE=f((lT,CE)=>{"use strict";var Je=d("node:assert"),{pipeline:km}=d("node:stream"),Y=x(),{RequestContentLengthMismatchError:sa,RequestAbortedError:uE,SocketError:Pr,InformationalError:oa}=v(),{kUrl:Es,kReset:Bs,kClient:zt,kRunning:Is,kPending:Fm,kQueue:xA,kPendingIdx:ia,kRunningIdx:Oe,kError:Pe,kSocket:ge,kStrictContentLength:Rm,kOnError:aa,kMaxConcurrentStreams:IE,kHTTP2Session:We,kResume:YA,kSize:Sm,kHTTPContext:Nm}=j(),pA=Symbol("open streams"),lE,EE=!1,Qs;try{Qs=d("node:http2")}catch{Qs={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:Um,HTTP2_HEADER_METHOD:Mm,HTTP2_HEADER_PATH:Lm,HTTP2_HEADER_SCHEME:Tm,HTTP2_HEADER_CONTENT_LENGTH:xm,HTTP2_HEADER_EXPECT:Ym,HTTP2_HEADER_STATUS:Gm}}=Qs;function Jm(e){let A=[];for(let[t,r]of Object.entries(e))if(Array.isArray(r))for(let n of r)A.push(Buffer.from(t),Buffer.from(n));else A.push(Buffer.from(t),Buffer.from(r));return A}async function vm(e,A){e[ge]=A,EE||(EE=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let t=Qs.connect(e[Es],{createConnection:()=>A,peerMaxConcurrentStreams:e[IE]});t[pA]=0,t[zt]=e,t[ge]=A,Y.addListener(t,"error",Vm),Y.addListener(t,"frameError",qm),Y.addListener(t,"end",Om),Y.addListener(t,"goaway",Wm),Y.addListener(t,"close",function(){let{[zt]:n}=this,{[ge]:s}=n,o=this[ge][Pe]||this[Pe]||new Pr("closed",Y.getSocketInfo(s));if(n[We]=null,n.destroyed){Je(n[Fm]===0);let i=n[xA].splice(n[Oe]);for(let a=0;a<i.length;a++){let c=i[a];Y.errorRequest(n,c,o)}}}),t.unref(),e[We]=t,A[We]=t,Y.addListener(A,"error",function(n){Je(n.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[Pe]=n,this[zt][aa](n)}),Y.addListener(A,"end",function(){Y.destroy(this,new Pr("other side closed",Y.getSocketInfo(this)))}),Y.addListener(A,"close",function(){let n=this[Pe]||new Pr("closed",Y.getSocketInfo(this));e[ge]=null,this[We]!=null&&this[We].destroy(n),e[ia]=e[Oe],Je(e[Is]===0),e.emit("disconnect",e[Es],[e],n),e[YA]()});let r=!1;return A.on("close",()=>{r=!0}),{version:"h2",defaultPipelining:1/0,write(...n){return _m(e,...n)},resume(){Hm(e)},destroy(n,s){r?queueMicrotask(s):A.destroy(n).on("close",s)},get destroyed(){return A.destroyed},busy(){return!1}}}function Hm(e){let A=e[ge];A?.destroyed===!1&&(e[Sm]===0&&e[IE]===0?(A.unref(),e[We].unref()):(A.ref(),e[We].ref()))}function Vm(e){Je(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[ge][Pe]=e,this[zt][aa](e)}function qm(e,A,t){if(t===0){let r=new oa(`HTTP/2: "frameError" received - type ${e}, code ${A}`);this[ge][Pe]=r,this[zt][aa](r)}}function Om(){let e=new Pr("other side closed",Y.getSocketInfo(this[ge]));this.destroy(e),Y.destroy(this[ge],e)}function Wm(e){let A=this[Pe]||new Pr(`HTTP/2: "GOAWAY" frame received with code ${e}`,Y.getSocketInfo(this)),t=this[zt];if(t[ge]=null,t[Nm]=null,this[We]!=null&&(this[We].destroy(A),this[We]=null),Y.destroy(this[ge],A),t[Oe]<t[xA].length){let r=t[xA][t[Oe]];t[xA][t[Oe]++]=null,Y.errorRequest(t,r,A),t[ia]=t[Oe]}Je(t[Is]===0),t.emit("disconnect",t[Es],[t],A),t[YA]()}function Pm(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function _m(e,A){let t=e[We],{method:r,path:n,host:s,upgrade:o,expectContinue:i,signal:a,headers:c}=A,{body:l}=A;if(o)return Y.errorRequest(e,A,new Error("Upgrade not supported for H2")),!1;let u={};for(let m=0;m<c.length;m+=2){let T=c[m+0],_=c[m+1];if(Array.isArray(_))for(let Z=0;Z<_.length;Z++)u[T]?u[T]+=`,${_[Z]}`:u[T]=_[Z];else u[T]=_}let g,{hostname:E,port:Q}=e[Es];u[Um]=s||`${E}${Q?`:${Q}`:""}`,u[Mm]=r;let I=m=>{A.aborted||A.completed||(m=m||new uE,Y.errorRequest(e,A,m),g!=null&&Y.destroy(g,m),Y.destroy(l,m),e[xA][e[Oe]++]=null,e[YA]())};try{A.onConnect(I)}catch(m){Y.errorRequest(e,A,m)}if(A.aborted)return!1;if(r==="CONNECT")return t.ref(),g=t.request(u,{endStream:!1,signal:a}),g.id&&!g.pending?(A.onUpgrade(null,null,g),++t[pA],e[xA][e[Oe]++]=null):g.once("ready",()=>{A.onUpgrade(null,null,g),++t[pA],e[xA][e[Oe]++]=null}),g.once("close",()=>{t[pA]-=1,t[pA]===0&&t.unref()}),!0;u[Lm]=n,u[Tm]="https";let C=r==="PUT"||r==="POST"||r==="PATCH";l&&typeof l.read=="function"&&l.read(0);let B=Y.bodyLength(l);if(Y.isFormDataLike(l)){lE??=Wt().extractBody;let[m,T]=lE(l);u["content-type"]=T,l=m.stream,B=m.length}if(B==null&&(B=A.contentLength),(B===0||!C)&&(B=null),Pm(r)&&B>0&&A.contentLength!=null&&A.contentLength!==B){if(e[Rm])return Y.errorRequest(e,A,new sa),!1;process.emitWarning(new sa)}B!=null&&(Je(l,"no body must not have content length"),u[xm]=`${B}`),t.ref();let h=r==="GET"||r==="HEAD"||l===null;return i?(u[Ym]="100-continue",g=t.request(u,{endStream:h,signal:a}),g.once("continue",y)):(g=t.request(u,{endStream:h,signal:a}),y()),++t[pA],g.once("response",m=>{let{[Gm]:T,..._}=m;if(A.onResponseStarted(),A.aborted){let Z=new uE;Y.errorRequest(e,A,Z),Y.destroy(g,Z);return}A.onHeaders(Number(T),Jm(_),g.resume.bind(g),"")===!1&&g.pause(),g.on("data",Z=>{A.onData(Z)===!1&&g.pause()})}),g.once("end",()=>{(g.state?.state==null||g.state.state<6)&&A.onComplete([]),t[pA]===0&&t.unref(),I(new oa("HTTP/2: stream half-closed (remote)")),e[xA][e[Oe]++]=null,e[ia]=e[Oe],e[YA]()}),g.once("close",()=>{t[pA]-=1,t[pA]===0&&t.unref()}),g.once("error",function(m){I(m)}),g.once("frameError",(m,T)=>{I(new oa(`HTTP/2: "frameError" received - type ${m}, code ${T}`))}),!0;function y(){!l||B===0?QE(I,g,null,e,A,e[ge],B,C):Y.isBuffer(l)?QE(I,g,l,e,A,e[ge],B,C):Y.isBlobLike(l)?typeof l.stream=="function"?BE(I,g,l.stream(),e,A,e[ge],B,C):zm(I,g,l,e,A,e[ge],B,C):Y.isStream(l)?Zm(I,e[ge],C,g,l,e,A,B):Y.isIterable(l)?BE(I,g,l,e,A,e[ge],B,C):Je(!1)}}function QE(e,A,t,r,n,s,o,i){try{t!=null&&Y.isBuffer(t)&&(Je(o===t.byteLength,"buffer body must have content length"),A.cork(),A.write(t),A.uncork(),A.end(),n.onBodySent(t)),i||(s[Bs]=!0),n.onRequestSent(),r[YA]()}catch(a){e(a)}}function Zm(e,A,t,r,n,s,o,i){Je(i!==0||s[Is]===0,"stream body cannot be pipelined");let a=km(n,r,l=>{l?(Y.destroy(a,l),e(l)):(Y.removeAllListeners(a),o.onRequestSent(),t||(A[Bs]=!0),s[YA]())});Y.addListener(a,"data",c);function c(l){o.onBodySent(l)}}async function zm(e,A,t,r,n,s,o,i){Je(o===t.size,"blob body must have content length");try{if(o!=null&&o!==t.size)throw new sa;let a=Buffer.from(await t.arrayBuffer());A.cork(),A.write(a),A.uncork(),A.end(),n.onBodySent(a),n.onRequestSent(),i||(s[Bs]=!0),r[YA]()}catch(a){e(a)}}async function BE(e,A,t,r,n,s,o,i){Je(o!==0||r[Is]===0,"iterator body cannot be pipelined");let a=null;function c(){if(a){let u=a;a=null,u()}}let l=()=>new Promise((u,g)=>{Je(a===null),s[Pe]?g(s[Pe]):a=u});A.on("close",c).on("drain",c);try{for await(let u of t){if(s[Pe])throw s[Pe];let g=A.write(u);n.onBodySent(u),g||await l()}A.end(),n.onRequestSent(),i||(s[Bs]=!0),r[YA]()}catch(u){e(u)}finally{A.off("close",c).off("drain",c)}}CE.exports=vm});var hs=f((ET,pE)=>{"use strict";var oA=x(),{kBodyUsed:_r}=j(),ga=d("node:assert"),{InvalidArgumentError:Km}=v(),Xm=d("node:events"),jm=[300,301,302,303,307,308],dE=Symbol("body"),Cs=class{constructor(A){this[dE]=A,this[_r]=!1}async*[Symbol.asyncIterator](){ga(!this[_r],"disturbed"),this[_r]=!0,yield*this[dE]}},ca=class{constructor(A,t,r,n){if(t!=null&&(!Number.isInteger(t)||t<0))throw new Km("maxRedirections must be a positive number");oA.validateHandler(n,r.method,r.upgrade),this.dispatch=A,this.location=null,this.abort=null,this.opts={...r,maxRedirections:0},this.maxRedirections=t,this.handler=n,this.history=[],this.redirectionLimitReached=!1,oA.isStream(this.opts.body)?(oA.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){ga(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[_r]=!1,Xm.prototype.on.call(this.opts.body,"data",function(){this[_r]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new Cs(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&oA.isIterable(this.opts.body)&&(this.opts.body=new Cs(this.opts.body))}onConnect(A){this.abort=A,this.handler.onConnect(A,{history:this.history})}onUpgrade(A,t,r){this.handler.onUpgrade(A,t,r)}onError(A){this.handler.onError(A)}onHeaders(A,t,r,n){if(this.location=this.history.length>=this.maxRedirections||oA.isDisturbed(this.opts.body)?null:$m(A,t),this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){this.request&&this.request.abort(new Error("max redirects")),this.redirectionLimitReached=!0,this.abort(new Error("max redirects"));return}if(this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(A,t,r,n);let{origin:s,pathname:o,search:i}=oA.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),a=i?`${o}${i}`:o;this.opts.headers=ey(this.opts.headers,A===303,this.opts.origin!==s),this.opts.path=a,this.opts.origin=s,this.opts.maxRedirections=0,this.opts.query=null,A===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(A){if(!this.location)return this.handler.onData(A)}onComplete(A){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(A)}onBodySent(A){this.handler.onBodySent&&this.handler.onBodySent(A)}};function $m(e,A){if(jm.indexOf(e)===-1)return null;for(let t=0;t<A.length;t+=2)if(A[t].length===8&&oA.headerNameToString(A[t])==="location")return A[t+1]}function fE(e,A,t){if(e.length===4)return oA.headerNameToString(e)==="host";if(A&&oA.headerNameToString(e).startsWith("content-"))return!0;if(t&&(e.length===13||e.length===6||e.length===19)){let r=oA.headerNameToString(e);return r==="authorization"||r==="cookie"||r==="proxy-authorization"}return!1}function ey(e,A,t){let r=[];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)fE(e[n],A,t)||r.push(e[n],e[n+1]);else if(e&&typeof e=="object")for(let n of Object.keys(e))fE(n,A,t)||r.push(n,e[n]);else ga(e==null,"headers must be an object or an array");return r}pE.exports=ca});var ds=f((QT,wE)=>{"use strict";var Ay=hs();function ty({maxRedirections:e}){return A=>function(r,n){let{maxRedirections:s=e}=r;if(!s)return A(r,n);let o=new Ay(A,s,r,n);return r={...r,maxRedirections:0},A(r,o)}}wE.exports=ty});var jt=f((BT,UE)=>{"use strict";var wA=d("node:assert"),FE=d("node:net"),ry=d("node:http"),it=x(),{channels:Kt}=Ut(),ny=Uu(),sy=xt(),{InvalidArgumentError:te,InformationalError:oy,ClientDestroyedError:iy}=v(),ay=Lr(),{kUrl:iA,kServerName:GA,kClient:cy,kBusy:ua,kConnect:gy,kResuming:at,kRunning:jr,kPending:$r,kSize:Xr,kQueue:_e,kConnected:uy,kConnecting:Xt,kNeedDrain:vA,kKeepAliveDefaultTimeout:mE,kHostHeader:ly,kPendingIdx:Ze,kRunningIdx:mA,kError:Ey,kPipelining:fs,kKeepAliveTimeoutValue:Qy,kMaxHeadersSize:By,kKeepAliveMaxTimeout:Iy,kKeepAliveTimeoutThreshold:Cy,kHeadersTimeout:hy,kBodyTimeout:dy,kStrictContentLength:fy,kConnector:Zr,kMaxRedirections:py,kMaxRequests:la,kCounter:wy,kClose:my,kDestroy:yy,kDispatch:Dy,kInterceptors:yE,kLocalAddress:zr,kMaxResponseSize:by,kOnError:ky,kHTTPContext:re,kMaxConcurrentStreams:Fy,kResume:Kr}=j(),Ry=gE(),Sy=hE(),DE=!1,JA=Symbol("kClosedResolve"),bE=()=>{};function RE(e){return e[fs]??e[re]?.defaultPipelining??1}var Ea=class extends sy{constructor(A,{interceptors:t,maxHeaderSize:r,headersTimeout:n,socketTimeout:s,requestTimeout:o,connectTimeout:i,bodyTimeout:a,idleTimeout:c,keepAlive:l,keepAliveTimeout:u,maxKeepAliveTimeout:g,keepAliveMaxTimeout:E,keepAliveTimeoutThreshold:Q,socketPath:I,pipelining:C,tls:B,strictContentLength:h,maxCachedSessions:y,maxRedirections:m,connect:T,maxRequestsPerClient:_,localAddress:Z,maxResponseSize:M,autoSelectFamily:V,autoSelectFamilyAttemptTimeout:De,maxConcurrentStreams:Be,allowH2:se,webSocket:xe}={}){if(super({webSocket:xe}),l!==void 0)throw new te("unsupported keepAlive, use pipelining=0 instead");if(s!==void 0)throw new te("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(o!==void 0)throw new te("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(c!==void 0)throw new te("unsupported idleTimeout, use keepAliveTimeout instead");if(g!==void 0)throw new te("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(r!=null&&!Number.isFinite(r))throw new te("invalid maxHeaderSize");if(I!=null&&typeof I!="string")throw new te("invalid socketPath");if(i!=null&&(!Number.isFinite(i)||i<0))throw new te("invalid connectTimeout");if(u!=null&&(!Number.isFinite(u)||u<=0))throw new te("invalid keepAliveTimeout");if(E!=null&&(!Number.isFinite(E)||E<=0))throw new te("invalid keepAliveMaxTimeout");if(Q!=null&&!Number.isFinite(Q))throw new te("invalid keepAliveTimeoutThreshold");if(n!=null&&(!Number.isInteger(n)||n<0))throw new te("headersTimeout must be a positive integer or zero");if(a!=null&&(!Number.isInteger(a)||a<0))throw new te("bodyTimeout must be a positive integer or zero");if(T!=null&&typeof T!="function"&&typeof T!="object")throw new te("connect must be a function or an object");if(m!=null&&(!Number.isInteger(m)||m<0))throw new te("maxRedirections must be a positive number");if(_!=null&&(!Number.isInteger(_)||_<0))throw new te("maxRequestsPerClient must be a positive number");if(Z!=null&&(typeof Z!="string"||FE.isIP(Z)===0))throw new te("localAddress must be valid string IP address");if(M!=null&&(!Number.isInteger(M)||M<-1))throw new te("maxResponseSize must be a positive number");if(De!=null&&(!Number.isInteger(De)||De<-1))throw new te("autoSelectFamilyAttemptTimeout must be a positive number");if(se!=null&&typeof se!="boolean")throw new te("allowH2 must be a valid boolean value");if(Be!=null&&(typeof Be!="number"||Be<1))throw new te("maxConcurrentStreams must be a positive integer, greater than 0");typeof T!="function"&&(T=ay({...B,maxCachedSessions:y,allowH2:se,socketPath:I,timeout:i,...V?{autoSelectFamily:V,autoSelectFamilyAttemptTimeout:De}:void 0,...T})),t?.Client&&Array.isArray(t.Client)?(this[yE]=t.Client,DE||(DE=!0,process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIENT-INTERCEPTOR-DEPRECATED"}))):this[yE]=[Ny({maxRedirections:m})],this[iA]=it.parseOrigin(A),this[Zr]=T,this[fs]=C??1,this[By]=r||ry.maxHeaderSize,this[mE]=u??4e3,this[Iy]=E??6e5,this[Cy]=Q??2e3,this[Qy]=this[mE],this[GA]=null,this[zr]=Z??null,this[at]=0,this[vA]=0,this[ly]=`host: ${this[iA].hostname}${this[iA].port?`:${this[iA].port}`:""}\r
40
- `,this[dy]=a??3e5,this[hy]=n??3e5,this[fy]=h??!0,this[py]=m,this[la]=_,this[JA]=null,this[by]=M>-1?M:-1,this[Fy]=Be??100,this[re]=null,this[_e]=[],this[mA]=0,this[Ze]=0,this[Kr]=QA=>Qa(this,QA),this[ky]=QA=>SE(this,QA)}get pipelining(){return this[fs]}set pipelining(A){this[fs]=A,this[Kr](!0)}get[$r](){return this[_e].length-this[Ze]}get[jr](){return this[Ze]-this[mA]}get[Xr](){return this[_e].length-this[mA]}get[uy](){return!!this[re]&&!this[Xt]&&!this[re].destroyed}get[ua](){return!!(this[re]?.busy(null)||this[Xr]>=(RE(this)||1)||this[$r]>0)}[gy](A){NE(this),this.once("connect",A)}[Dy](A,t){let r=A.origin||this[iA].origin,n=new ny(r,A,t);return this[_e].push(n),this[at]||(it.bodyLength(n.body)==null&&it.isIterable(n.body)?(this[at]=1,queueMicrotask(()=>Qa(this))):this[Kr](!0)),this[at]&&this[vA]!==2&&this[ua]&&(this[vA]=2),this[vA]<2}async[my](){return new Promise(A=>{this[Xr]?this[JA]=A:A(null)})}async[yy](A){return new Promise(t=>{let r=this[_e].splice(this[Ze]);for(let s=0;s<r.length;s++){let o=r[s];it.errorRequest(this,o,A)}let n=()=>{this[JA]&&(this[JA](),this[JA]=null),t(null)};this[re]?(this[re].destroy(A,n),this[re]=null):queueMicrotask(n),this[Kr]()})}},Ny=ds();function SE(e,A){if(e[jr]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){wA(e[Ze]===e[mA]);let t=e[_e].splice(e[mA]);for(let r=0;r<t.length;r++){let n=t[r];it.errorRequest(e,n,A)}wA(e[Xr]===0)}}async function NE(e){wA(!e[Xt]),wA(!e[re]);let{host:A,hostname:t,protocol:r,port:n}=e[iA];if(t[0]==="["){let s=t.indexOf("]");wA(s!==-1);let o=t.substring(1,s);wA(FE.isIP(o)),t=o}e[Xt]=!0,Kt.beforeConnect.hasSubscribers&&Kt.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[re]?.version,servername:e[GA],localAddress:e[zr]},connector:e[Zr]});try{let s=await new Promise((o,i)=>{e[Zr]({host:A,hostname:t,protocol:r,port:n,servername:e[GA],localAddress:e[zr]},(a,c)=>{a?i(a):o(c)})});if(e.destroyed){it.destroy(s.on("error",bE),new iy);return}wA(s);try{e[re]=s.alpnProtocol==="h2"?await Sy(e,s):await Ry(e,s)}catch(o){throw s.destroy().on("error",bE),o}e[Xt]=!1,s[wy]=0,s[la]=e[la],s[cy]=e,s[Ey]=null,Kt.connected.hasSubscribers&&Kt.connected.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[re]?.version,servername:e[GA],localAddress:e[zr]},connector:e[Zr],socket:s}),e.emit("connect",e[iA],[e])}catch(s){if(e.destroyed)return;if(e[Xt]=!1,Kt.connectError.hasSubscribers&&Kt.connectError.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[re]?.version,servername:e[GA],localAddress:e[zr]},connector:e[Zr],error:s}),s.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(wA(e[jr]===0);e[$r]>0&&e[_e][e[Ze]].servername===e[GA];){let o=e[_e][e[Ze]++];it.errorRequest(e,o,s)}else SE(e,s);e.emit("connectionError",e[iA],[e],s)}e[Kr]()}function kE(e){e[vA]=0,e.emit("drain",e[iA],[e])}function Qa(e,A){e[at]!==2&&(e[at]=2,Uy(e,A),e[at]=0,e[mA]>256&&(e[_e].splice(0,e[mA]),e[Ze]-=e[mA],e[mA]=0))}function Uy(e,A){for(;;){if(e.destroyed){wA(e[$r]===0);return}if(e[JA]&&!e[Xr]){e[JA](),e[JA]=null;return}if(e[re]&&e[re].resume(),e[ua])e[vA]=2;else if(e[vA]===2){A?(e[vA]=1,queueMicrotask(()=>kE(e))):kE(e);continue}if(e[$r]===0||e[jr]>=(RE(e)||1))return;let t=e[_e][e[Ze]];if(e[iA].protocol==="https:"&&e[GA]!==t.servername){if(e[jr]>0)return;e[GA]=t.servername,e[re]?.destroy(new oy("servername changed"),()=>{e[re]=null,Qa(e)})}if(e[Xt])return;if(!e[re]){NE(e);return}if(e[re].destroyed||e[re].busy(t))return;!t.aborted&&e[re].write(t)?e[Ze]++:e[_e].splice(e[Ze],1)}}UE.exports=Ea});var Ba=f((CT,ME)=>{"use strict";var ps=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(A){this.list[this.top]=A,this.top=this.top+1&2047}shift(){let A=this.list[this.bottom];return A===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,A)}};ME.exports=class{constructor(){this.head=this.tail=new ps}isEmpty(){return this.head.isEmpty()}push(A){this.head.isFull()&&(this.head=this.head.next=new ps),this.head.push(A)}shift(){let A=this.tail,t=A.shift();return A.isEmpty()&&A.next!==null&&(this.tail=A.next),t}}});var TE=f((hT,LE)=>{var{kFree:My,kConnected:Ly,kPending:Ty,kQueued:xy,kRunning:Yy,kSize:Gy}=j(),ct=Symbol("pool"),Ia=class{constructor(A){this[ct]=A}get connected(){return this[ct][Ly]}get free(){return this[ct][My]}get pending(){return this[ct][Ty]}get queued(){return this[ct][xy]}get running(){return this[ct][Yy]}get size(){return this[ct][Gy]}};LE.exports=Ia});var wa=f((dT,WE)=>{"use strict";var Jy=xt(),vy=Ba(),{kConnected:Ca,kSize:xE,kRunning:YE,kPending:GE,kQueued:en,kBusy:Hy,kFree:Vy,kUrl:qy,kClose:Oy,kDestroy:Wy,kDispatch:Py}=j(),_y=TE(),pe=Symbol("clients"),he=Symbol("needDrain"),An=Symbol("queue"),ha=Symbol("closed resolve"),da=Symbol("onDrain"),JE=Symbol("onConnect"),vE=Symbol("onDisconnect"),HE=Symbol("onConnectionError"),fa=Symbol("get dispatcher"),qE=Symbol("add client"),OE=Symbol("remove client"),VE=Symbol("stats"),pa=class extends Jy{constructor(A){super(A),this[An]=new vy,this[pe]=[],this[en]=0;let t=this;this[da]=function(n,s){let o=t[An],i=!1;for(;!i;){let a=o.shift();if(!a)break;t[en]--,i=!this.dispatch(a.opts,a.handler)}this[he]=i,!this[he]&&t[he]&&(t[he]=!1,t.emit("drain",n,[t,...s])),t[ha]&&o.isEmpty()&&Promise.all(t[pe].map(a=>a.close())).then(t[ha])},this[JE]=(r,n)=>{t.emit("connect",r,[t,...n])},this[vE]=(r,n,s)=>{t.emit("disconnect",r,[t,...n],s)},this[HE]=(r,n,s)=>{t.emit("connectionError",r,[t,...n],s)},this[VE]=new _y(this)}get[Hy](){return this[he]}get[Ca](){return this[pe].filter(A=>A[Ca]).length}get[Vy](){return this[pe].filter(A=>A[Ca]&&!A[he]).length}get[GE](){let A=this[en];for(let{[GE]:t}of this[pe])A+=t;return A}get[YE](){let A=0;for(let{[YE]:t}of this[pe])A+=t;return A}get[xE](){let A=this[en];for(let{[xE]:t}of this[pe])A+=t;return A}get stats(){return this[VE]}async[Oy](){this[An].isEmpty()?await Promise.all(this[pe].map(A=>A.close())):await new Promise(A=>{this[ha]=A})}async[Wy](A){for(;;){let t=this[An].shift();if(!t)break;t.handler.onError(A)}await Promise.all(this[pe].map(t=>t.destroy(A)))}[Py](A,t){let r=this[fa]();return r?r.dispatch(A,t)||(r[he]=!0,this[he]=!this[fa]()):(this[he]=!0,this[An].push({opts:A,handler:t}),this[en]++),!this[he]}[qE](A){return A.on("drain",this[da]).on("connect",this[JE]).on("disconnect",this[vE]).on("connectionError",this[HE]),this[pe].push(A),this[he]&&queueMicrotask(()=>{this[he]&&this[da](A[qy],[this,A])}),this}[OE](A){A.close(()=>{let t=this[pe].indexOf(A);t!==-1&&this[pe].splice(t,1)}),this[he]=this[pe].some(t=>!t[he]&&t.closed!==!0&&t.destroyed!==!0)}};WE.exports={PoolBase:pa,kClients:pe,kNeedDrain:he,kAddClient:qE,kRemoveClient:OE,kGetDispatcher:fa}});var $t=f((fT,zE)=>{"use strict";var{PoolBase:Zy,kClients:ws,kNeedDrain:zy,kAddClient:Ky,kGetDispatcher:Xy}=wa(),jy=jt(),{InvalidArgumentError:ma}=v(),PE=x(),{kUrl:_E,kInterceptors:$y}=j(),eD=Lr(),ya=Symbol("options"),Da=Symbol("connections"),ZE=Symbol("factory");function AD(e,A){return new jy(e,A)}var ba=class extends Zy{constructor(A,{connections:t,factory:r=AD,connect:n,connectTimeout:s,tls:o,maxCachedSessions:i,socketPath:a,autoSelectFamily:c,autoSelectFamilyAttemptTimeout:l,allowH2:u,...g}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new ma("invalid connections");if(typeof r!="function")throw new ma("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new ma("connect must be a function or an object");typeof n!="function"&&(n=eD({...o,maxCachedSessions:i,allowH2:u,socketPath:a,timeout:s,...c?{autoSelectFamily:c,autoSelectFamilyAttemptTimeout:l}:void 0,...n})),super(g),this[$y]=g.interceptors?.Pool&&Array.isArray(g.interceptors.Pool)?g.interceptors.Pool:[],this[Da]=t||null,this[_E]=PE.parseOrigin(A),this[ya]={...PE.deepClone(g),connect:n,allowH2:u},this[ya].interceptors=g.interceptors?{...g.interceptors}:void 0,this[ZE]=r,this.on("connectionError",(E,Q,I)=>{for(let C of Q){let B=this[ws].indexOf(C);B!==-1&&this[ws].splice(B,1)}})}[Xy](){for(let A of this[ws])if(!A[zy])return A;if(!this[Da]||this[ws].length<this[Da]){let A=this[ZE](this[_E],this[ya]);return this[Ky](A),A}}};zE.exports=ba});var eQ=f((pT,$E)=>{"use strict";var{BalancedPoolMissingUpstreamError:tD,InvalidArgumentError:rD}=v(),{PoolBase:nD,kClients:Ee,kNeedDrain:tn,kAddClient:sD,kRemoveClient:oD,kGetDispatcher:iD}=wa(),aD=$t(),{kUrl:ka,kInterceptors:cD}=j(),{parseOrigin:KE}=x(),XE=Symbol("factory"),ms=Symbol("options"),jE=Symbol("kGreatestCommonDivisor"),gt=Symbol("kCurrentWeight"),ut=Symbol("kIndex"),ve=Symbol("kWeight"),ys=Symbol("kMaxWeightPerServer"),Ds=Symbol("kErrorPenalty");function gD(e,A){if(e===0)return A;for(;A!==0;){let t=A;A=e%A,e=t}return e}function uD(e,A){return new aD(e,A)}var Fa=class extends nD{constructor(A=[],{factory:t=uD,...r}={}){if(super(),this[ms]=r,this[ut]=-1,this[gt]=0,this[ys]=this[ms].maxWeightPerServer||100,this[Ds]=this[ms].errorPenalty||15,Array.isArray(A)||(A=[A]),typeof t!="function")throw new rD("factory must be a function.");this[cD]=r.interceptors?.BalancedPool&&Array.isArray(r.interceptors.BalancedPool)?r.interceptors.BalancedPool:[],this[XE]=t;for(let n of A)this.addUpstream(n);this._updateBalancedPoolStats()}addUpstream(A){let t=KE(A).origin;if(this[Ee].find(n=>n[ka].origin===t&&n.closed!==!0&&n.destroyed!==!0))return this;let r=this[XE](t,Object.assign({},this[ms]));this[sD](r),r.on("connect",()=>{r[ve]=Math.min(this[ys],r[ve]+this[Ds])}),r.on("connectionError",()=>{r[ve]=Math.max(1,r[ve]-this[Ds]),this._updateBalancedPoolStats()}),r.on("disconnect",(...n)=>{let s=n[2];s&&s.code==="UND_ERR_SOCKET"&&(r[ve]=Math.max(1,r[ve]-this[Ds]),this._updateBalancedPoolStats())});for(let n of this[Ee])n[ve]=this[ys];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let A=0;for(let t=0;t<this[Ee].length;t++)A=gD(this[Ee][t][ve],A);this[jE]=A}removeUpstream(A){let t=KE(A).origin,r=this[Ee].find(n=>n[ka].origin===t&&n.closed!==!0&&n.destroyed!==!0);return r&&this[oD](r),this}get upstreams(){return this[Ee].filter(A=>A.closed!==!0&&A.destroyed!==!0).map(A=>A[ka].origin)}[iD](){if(this[Ee].length===0)throw new tD;if(!this[Ee].find(s=>!s[tn]&&s.closed!==!0&&s.destroyed!==!0)||this[Ee].map(s=>s[tn]).reduce((s,o)=>s&&o,!0))return;let r=0,n=this[Ee].findIndex(s=>!s[tn]);for(;r++<this[Ee].length;){this[ut]=(this[ut]+1)%this[Ee].length;let s=this[Ee][this[ut]];if(s[ve]>this[Ee][n][ve]&&!s[tn]&&(n=this[ut]),this[ut]===0&&(this[gt]=this[gt]-this[jE],this[gt]<=0&&(this[gt]=this[ys])),s[ve]>=this[gt]&&!s[tn])return s}return this[gt]=this[Ee][n][ve],this[ut]=n,this[Ee][n]}};$E.exports=Fa});var er=f((wT,iQ)=>{"use strict";var{InvalidArgumentError:bs}=v(),{kClients:HA,kRunning:AQ,kClose:lD,kDestroy:ED,kDispatch:QD,kInterceptors:BD}=j(),ID=xt(),CD=$t(),hD=jt(),dD=x(),fD=ds(),tQ=Symbol("onConnect"),rQ=Symbol("onDisconnect"),nQ=Symbol("onConnectionError"),pD=Symbol("maxRedirections"),sQ=Symbol("onDrain"),oQ=Symbol("factory"),Ra=Symbol("options");function wD(e,A){return A&&A.connections===1?new hD(e,A):new CD(e,A)}var Sa=class extends ID{constructor({factory:A=wD,maxRedirections:t=0,connect:r,...n}={}){if(typeof A!="function")throw new bs("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new bs("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new bs("maxRedirections must be a positive number");super(n),r&&typeof r!="function"&&(r={...r}),this[BD]=n.interceptors?.Agent&&Array.isArray(n.interceptors.Agent)?n.interceptors.Agent:[fD({maxRedirections:t})],this[Ra]={...dD.deepClone(n),connect:r},this[Ra].interceptors=n.interceptors?{...n.interceptors}:void 0,this[pD]=t,this[oQ]=A,this[HA]=new Map,this[sQ]=(s,o)=>{this.emit("drain",s,[this,...o])},this[tQ]=(s,o)=>{this.emit("connect",s,[this,...o])},this[rQ]=(s,o,i)=>{this.emit("disconnect",s,[this,...o],i)},this[nQ]=(s,o,i)=>{this.emit("connectionError",s,[this,...o],i)}}get[AQ](){let A=0;for(let t of this[HA].values())A+=t[AQ];return A}[QD](A,t){let r;if(A.origin&&(typeof A.origin=="string"||A.origin instanceof URL))r=String(A.origin);else throw new bs("opts.origin must be a non-empty string or URL.");let n=this[HA].get(r);return n||(n=this[oQ](A.origin,this[Ra]).on("drain",this[sQ]).on("connect",this[tQ]).on("disconnect",this[rQ]).on("connectionError",this[nQ]),this[HA].set(r,n)),n.dispatch(A,t)}async[lD](){let A=[];for(let t of this[HA].values())A.push(t.close());this[HA].clear(),await Promise.all(A)}async[ED](A){let t=[];for(let r of this[HA].values())t.push(r.destroy(A));this[HA].clear(),await Promise.all(t)}};iQ.exports=Sa});var Ta=f((mT,hQ)=>{"use strict";var{kProxy:Na,kClose:EQ,kDestroy:QQ,kDispatch:aQ,kInterceptors:mD}=j(),{URL:lt}=d("node:url"),yD=er(),BQ=$t(),IQ=xt(),{InvalidArgumentError:Ar,RequestAbortedError:DD,SecureProxyConnectionError:bD}=v(),cQ=Lr(),CQ=jt(),ks=Symbol("proxy agent"),Fs=Symbol("proxy client"),VA=Symbol("proxy headers"),Ua=Symbol("request tls settings"),gQ=Symbol("proxy tls settings"),uQ=Symbol("connect endpoint function"),lQ=Symbol("tunnel proxy");function kD(e){return e==="https:"?443:80}function FD(e,A){return new BQ(e,A)}var RD=()=>{};function SD(e,A){return A.connections===1?new CQ(e,A):new BQ(e,A)}var Ma=class extends IQ{#e;constructor(A,{headers:t={},connect:r,factory:n}){if(super(),!A)throw new Ar("Proxy URL is mandatory");this[VA]=t,n?this.#e=n(A,{connect:r}):this.#e=new CQ(A,{connect:r})}[aQ](A,t){let r=t.onHeaders;t.onHeaders=function(i,a,c){if(i===407){typeof t.onError=="function"&&t.onError(new Ar("Proxy Authentication Required (407)"));return}r&&r.call(this,i,a,c)};let{origin:n,path:s="/",headers:o={}}=A;if(A.path=n+s,!("host"in o)&&!("Host"in o)){let{host:i}=new lt(n);o.host=i}return A.headers={...this[VA],...o},this.#e[aQ](A,t)}async[EQ](){return this.#e.close()}async[QQ](A){return this.#e.destroy(A)}},La=class extends IQ{constructor(A){if(super(),!A||typeof A=="object"&&!(A instanceof lt)&&!A.uri)throw new Ar("Proxy uri is mandatory");let{clientFactory:t=FD}=A;if(typeof t!="function")throw new Ar("Proxy opts.clientFactory must be a function.");let{proxyTunnel:r=!0}=A,n=this.#e(A),{href:s,origin:o,port:i,protocol:a,username:c,password:l,hostname:u}=n;if(this[Na]={uri:s,protocol:a},this[mD]=A.interceptors?.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],this[Ua]=A.requestTls,this[gQ]=A.proxyTls,this[VA]=A.headers||{},this[lQ]=r,A.auth&&A.token)throw new Ar("opts.auth cannot be used in combination with opts.token");A.auth?this[VA]["proxy-authorization"]=`Basic ${A.auth}`:A.token?this[VA]["proxy-authorization"]=A.token:c&&l&&(this[VA]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(c)}:${decodeURIComponent(l)}`).toString("base64")}`);let g=cQ({...A.proxyTls});this[uQ]=cQ({...A.requestTls});let E=A.factory||SD,Q=(I,C)=>{let{protocol:B}=new lt(I);return!this[lQ]&&B==="http:"&&this[Na].protocol==="http:"?new Ma(this[Na].uri,{headers:this[VA],connect:g,factory:E}):E(I,C)};this[Fs]=t(n,{connect:g}),this[ks]=new yD({...A,factory:Q,connect:async(I,C)=>{let B=I.host;I.port||(B+=`:${kD(I.protocol)}`);try{let{socket:h,statusCode:y}=await this[Fs].connect({origin:o,port:i,path:B,signal:I.signal,headers:{...this[VA],host:I.host},servername:this[gQ]?.servername||u});if(y!==200&&(h.on("error",RD).destroy(),C(new DD(`Proxy response (${y}) !== 200 when HTTP Tunneling`))),I.protocol!=="https:"){C(null,h);return}let m;this[Ua]?m=this[Ua].servername:m=I.servername,this[uQ]({...I,servername:m,httpSocket:h},C)}catch(h){h.code==="ERR_TLS_CERT_ALTNAME_INVALID"?C(new bD(h)):C(h)}}})}dispatch(A,t){let r=ND(A.headers);if(UD(r),r&&!("host"in r)&&!("Host"in r)){let{host:n}=new lt(A.origin);r.host=n}return this[ks].dispatch({...A,headers:r},t)}#e(A){return typeof A=="string"?new lt(A):A instanceof lt?A:new lt(A.uri)}async[EQ](){await this[ks].close(),await this[Fs].close()}async[QQ](){await this[ks].destroy(),await this[Fs].destroy()}};function ND(e){if(Array.isArray(e)){let A={};for(let t=0;t<e.length;t+=2)A[e[t]]=e[t+1];return A}return e}function UD(e){if(e&&Object.keys(e).find(t=>t.toLowerCase()==="proxy-authorization"))throw new Ar("Proxy-Authorization should be sent in ProxyAgent constructor")}hQ.exports=La});var yQ=f((yT,mQ)=>{"use strict";var MD=xt(),{kClose:LD,kDestroy:TD,kClosed:dQ,kDestroyed:fQ,kDispatch:xD,kNoProxyAgent:rn,kHttpProxyAgent:qA,kHttpsProxyAgent:Et}=j(),pQ=Ta(),YD=er(),GD={"http:":80,"https:":443},wQ=!1,xa=class extends MD{#e=null;#A=null;#t=null;constructor(A={}){super(),this.#t=A,wQ||(wQ=!0,process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.",{code:"UNDICI-EHPA"}));let{httpProxy:t,httpsProxy:r,noProxy:n,...s}=A;this[rn]=new YD(s);let o=t??process.env.http_proxy??process.env.HTTP_PROXY;o?this[qA]=new pQ({...s,uri:o}):this[qA]=this[rn];let i=r??process.env.https_proxy??process.env.HTTPS_PROXY;i?this[Et]=new pQ({...s,uri:i}):this[Et]=this[qA],this.#r()}[xD](A,t){let r=new URL(A.origin);return this.#s(r).dispatch(A,t)}async[LD](){await this[rn].close(),this[qA][dQ]||await this[qA].close(),this[Et][dQ]||await this[Et].close()}async[TD](A){await this[rn].destroy(A),this[qA][fQ]||await this[qA].destroy(A),this[Et][fQ]||await this[Et].destroy(A)}#s(A){let{protocol:t,host:r,port:n}=A;return r=r.replace(/:\d*$/,"").toLowerCase(),n=Number.parseInt(n,10)||GD[t]||0,this.#n(r,n)?t==="https:"?this[Et]:this[qA]:this[rn]}#n(A,t){if(this.#o&&this.#r(),this.#A.length===0)return!0;if(this.#e==="*")return!1;for(let r=0;r<this.#A.length;r++){let n=this.#A[r];if(!(n.port&&n.port!==t)){if(/^[.*]/.test(n.hostname)){if(A.endsWith(n.hostname.replace(/^\*/,"")))return!1}else if(A===n.hostname)return!1}}return!0}#r(){let A=this.#t.noProxy??this.#i,t=A.split(/[,\s]/),r=[];for(let n=0;n<t.length;n++){let s=t[n];if(!s)continue;let o=s.match(/^(.+):(\d+)$/);r.push({hostname:(o?o[1]:s).toLowerCase(),port:o?Number.parseInt(o[2],10):0})}this.#e=A,this.#A=r}get#o(){return this.#t.noProxy!==void 0?!1:this.#e!==this.#i}get#i(){return process.env.no_proxy??process.env.NO_PROXY??""}};mQ.exports=xa});var Rs=f((DT,RQ)=>{"use strict";var tr=d("node:assert"),{kRetryHandlerDefaultRetry:DQ}=j(),{RequestRetryError:rr}=v(),{isDisturbed:bQ,parseHeaders:JD,parseRangeHeader:kQ,wrapRequestBody:vD}=x();function HD(e){let A=Date.now();return new Date(e).getTime()-A}function FQ(e,A,t,r){let n=e["content-length"];if(n==null||!Number.isFinite(A.start)||!Number.isFinite(A.end))return null;let s=Number(n),o=A.end-A.start+1;return!Number.isFinite(s)||s!==o?new rr("Content-Length mismatch",t,{headers:e,data:{count:r}}):null}var Ya=class e{constructor(A,t){let{retryOptions:r,...n}=A,{retry:s,maxRetries:o,maxTimeout:i,minTimeout:a,timeoutFactor:c,methods:l,errorCodes:u,retryAfter:g,statusCodes:E}=r??{};this.dispatch=t.dispatch,this.handler=t.handler,this.opts={...n,body:vD(A.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:s??e[DQ],retryAfter:g??!0,maxTimeout:i??30*1e3,minTimeout:a??500,timeoutFactor:c??2,maxRetries:o??5,methods:l??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:E??[500,502,503,504,429],errorCodes:u??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(Q=>{this.aborted=!0,this.abort?this.abort(Q):this.reason=Q})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(A,t,r){this.handler.onUpgrade&&this.handler.onUpgrade(A,t,r)}onConnect(A){this.aborted?A(this.reason):this.abort=A}onBodySent(A){if(this.handler.onBodySent)return this.handler.onBodySent(A)}static[DQ](A,{state:t,opts:r},n){let{statusCode:s,code:o,headers:i}=A,{method:a,retryOptions:c}=r,{maxRetries:l,minTimeout:u,maxTimeout:g,timeoutFactor:E,statusCodes:Q,errorCodes:I,methods:C}=c,{counter:B}=t;if(o&&o!=="UND_ERR_REQ_RETRY"&&!I.includes(o)){n(A);return}if(Array.isArray(C)&&!C.includes(a)){n(A);return}if(s!=null&&Array.isArray(Q)&&!Q.includes(s)){n(A);return}if(B>l){n(A);return}let h=i?.["retry-after"];h&&(h=Number(h),h=Number.isNaN(h)?HD(h):h*1e3);let y=h>0?Math.min(h,g):Math.min(u*E**(B-1),g);setTimeout(()=>n(null),y)}onHeaders(A,t,r,n){let s=JD(t);if(this.retryCount+=1,A>=300)return this.retryOpts.statusCodes.includes(A)===!1?this.handler.onHeaders(A,t,r,n):(this.abort(new rr("Request failed",A,{headers:s,data:{count:this.retryCount}})),!1);if(this.resume!=null){if(this.resume=null,A!==206&&(this.start>0||A!==200))return this.abort(new rr("server does not support the range header and the payload was partially consumed",A,{headers:s,data:{count:this.retryCount}})),!1;let i=kQ(s["content-range"]);if(!i)return this.abort(new rr("Content-Range mismatch",A,{headers:s,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==s.etag)return this.abort(new rr("ETag mismatch",A,{headers:s,data:{count:this.retryCount}})),!1;let a=FQ(s,i,A,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:c,size:l,end:u=l-1}=i;return tr(this.start===c,"content-range mismatch"),tr(this.end==null||this.end===u,"content-range mismatch"),this.resume=r,!0}if(this.end==null){if(A===206){let i=kQ(s["content-range"]);if(i==null)return this.handler.onHeaders(A,t,r,n);let a=FQ(s,i,A,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:c,size:l,end:u=l-1}=i;tr(c!=null&&Number.isFinite(c),"content-range mismatch"),tr(u!=null&&Number.isFinite(u),"invalid content-length"),this.start=c,this.end=u}if(this.end==null){let i=s["content-length"];this.end=i!=null?Number(i)-1:null}return tr(Number.isFinite(this.start)),tr(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=r,this.etag=s.etag!=null?s.etag:null,this.etag!=null&&this.etag.startsWith("W/")&&(this.etag=null),this.handler.onHeaders(A,t,r,n)}let o=new rr("Request failed",A,{headers:s,data:{count:this.retryCount}});return this.abort(o),!1}onData(A){return this.start+=A.length,this.handler.onData(A)}onComplete(A){return this.retryCount=0,this.handler.onComplete(A)}onError(A){if(this.aborted||bQ(this.opts.body))return this.handler.onError(A);this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryOpts.retry(A,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},t.bind(this));function t(r){if(r!=null||this.aborted||bQ(this.opts.body))return this.handler.onError(r);if(this.start!==0){let n={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(n["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...n}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(n){this.handler.onError(n)}}}};RQ.exports=Ya});var NQ=f((bT,SQ)=>{"use strict";var VD=Ur(),qD=Rs(),Ga=class extends VD{#e=null;#A=null;constructor(A,t={}){super(t),this.#e=A,this.#A=t}dispatch(A,t){let r=new qD({...A,retryOptions:this.#A},{dispatch:this.#e.dispatch.bind(this.#e),handler:t});return this.#e.dispatch(A,r)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}};SQ.exports=Ga});var Oa=f((kT,vQ)=>{"use strict";var xQ=d("node:assert"),{Readable:OD}=d("node:stream"),{RequestAbortedError:YQ,NotSupportedError:WD,InvalidArgumentError:PD,AbortError:Ja}=v(),GQ=x(),{ReadableStreamFrom:_D}=x(),Fe=Symbol("kConsume"),nn=Symbol("kReading"),OA=Symbol("kBody"),UQ=Symbol("kAbort"),JQ=Symbol("kContentType"),MQ=Symbol("kContentLength"),ZD=()=>{},va=class extends OD{constructor({resume:A,abort:t,contentType:r="",contentLength:n,highWaterMark:s=64*1024}){super({autoDestroy:!0,read:A,highWaterMark:s}),this._readableState.dataEmitted=!1,this[UQ]=t,this[Fe]=null,this[OA]=null,this[JQ]=r,this[MQ]=n,this[nn]=!1}destroy(A){return!A&&!this._readableState.endEmitted&&(A=new YQ),A&&this[UQ](),super.destroy(A)}_destroy(A,t){this[nn]?t(A):setImmediate(()=>{t(A)})}on(A,...t){return(A==="data"||A==="readable")&&(this[nn]=!0),super.on(A,...t)}addListener(A,...t){return this.on(A,...t)}off(A,...t){let r=super.off(A,...t);return(A==="data"||A==="readable")&&(this[nn]=this.listenerCount("data")>0||this.listenerCount("readable")>0),r}removeListener(A,...t){return this.off(A,...t)}push(A){return this[Fe]&&A!==null?(Va(this[Fe],A),this[nn]?super.push(A):!0):super.push(A)}async text(){return sn(this,"text")}async json(){return sn(this,"json")}async blob(){return sn(this,"blob")}async bytes(){return sn(this,"bytes")}async arrayBuffer(){return sn(this,"arrayBuffer")}async formData(){throw new WD}get bodyUsed(){return GQ.isDisturbed(this)}get body(){return this[OA]||(this[OA]=_D(this),this[Fe]&&(this[OA].getReader(),xQ(this[OA].locked))),this[OA]}async dump(A){let t=Number.isFinite(A?.limit)?A.limit:131072,r=A?.signal;if(r!=null&&(typeof r!="object"||!("aborted"in r)))throw new PD("signal must be an AbortSignal");return r?.throwIfAborted(),this._readableState.closeEmitted?null:await new Promise((n,s)=>{this[MQ]>t&&this.destroy(new Ja);let o=()=>{this.destroy(r.reason??new Ja)};r?.addEventListener("abort",o),this.on("close",function(){r?.removeEventListener("abort",o),r?.aborted?s(r.reason??new Ja):n(null)}).on("error",ZD).on("data",function(i){t-=i.length,t<=0&&this.destroy()}).resume()})}};function zD(e){return e[OA]&&e[OA].locked===!0||e[Fe]}function KD(e){return GQ.isDisturbed(e)||zD(e)}async function sn(e,A){return xQ(!e[Fe]),new Promise((t,r)=>{if(KD(e)){let n=e._readableState;n.destroyed&&n.closeEmitted===!1?e.on("error",s=>{r(s)}).on("close",()=>{r(new TypeError("unusable"))}):r(n.errored??new TypeError("unusable"))}else queueMicrotask(()=>{e[Fe]={type:A,stream:e,resolve:t,reject:r,length:0,body:[]},e.on("error",function(n){qa(this[Fe],n)}).on("close",function(){this[Fe].body!==null&&qa(this[Fe],new YQ)}),XD(e[Fe])})})}function XD(e){if(e.body===null)return;let{_readableState:A}=e.stream;if(A.bufferIndex){let t=A.bufferIndex,r=A.buffer.length;for(let n=t;n<r;n++)Va(e,A.buffer[n])}else for(let t of A.buffer)Va(e,t);for(A.endEmitted?TQ(this[Fe]):e.stream.on("end",function(){TQ(this[Fe])}),e.stream.resume();e.stream.read()!=null;);}function Ha(e,A){if(e.length===0||A===0)return"";let t=e.length===1?e[0]:Buffer.concat(e,A),r=t.length,n=r>2&&t[0]===239&&t[1]===187&&t[2]===191?3:0;return t.utf8Slice(n,r)}function LQ(e,A){if(e.length===0||A===0)return new Uint8Array(0);if(e.length===1)return new Uint8Array(e[0]);let t=new Uint8Array(Buffer.allocUnsafeSlow(A).buffer),r=0;for(let n=0;n<e.length;++n){let s=e[n];t.set(s,r),r+=s.length}return t}function TQ(e){let{type:A,body:t,resolve:r,stream:n,length:s}=e;try{A==="text"?r(Ha(t,s)):A==="json"?r(JSON.parse(Ha(t,s))):A==="arrayBuffer"?r(LQ(t,s).buffer):A==="blob"?r(new Blob(t,{type:n[JQ]})):A==="bytes"&&r(LQ(t,s)),qa(e)}catch(o){n.destroy(o)}}function Va(e,A){e.length+=A.length,e.body.push(A)}function qa(e,A){e.body!==null&&(A?e.reject(A):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}vQ.exports={Readable:va,chunksDecode:Ha}});var Wa=f((FT,WQ)=>{var jD=d("node:assert"),{ResponseStatusCodeError:HQ}=v(),{chunksDecode:VQ}=Oa(),$D=128*1024;async function eb({callback:e,body:A,contentType:t,statusCode:r,statusMessage:n,headers:s}){jD(A);let o=[],i=0;try{for await(let u of A)if(o.push(u),i+=u.length,i>$D){o=[],i=0;break}}catch{o=[],i=0}let a=`Response status code ${r}${n?`: ${n}`:""}`;if(r===204||!t||!i){queueMicrotask(()=>e(new HQ(a,r,s)));return}let c=Error.stackTraceLimit;Error.stackTraceLimit=0;let l;try{qQ(t)?l=JSON.parse(VQ(o,i)):OQ(t)&&(l=VQ(o,i))}catch{}finally{Error.stackTraceLimit=c}queueMicrotask(()=>e(new HQ(a,r,s,l)))}var qQ=e=>e.length>15&&e[11]==="/"&&e[0]==="a"&&e[1]==="p"&&e[2]==="p"&&e[3]==="l"&&e[4]==="i"&&e[5]==="c"&&e[6]==="a"&&e[7]==="t"&&e[8]==="i"&&e[9]==="o"&&e[10]==="n"&&e[12]==="j"&&e[13]==="s"&&e[14]==="o"&&e[15]==="n",OQ=e=>e.length>4&&e[4]==="/"&&e[0]==="t"&&e[1]==="e"&&e[2]==="x"&&e[3]==="t";WQ.exports={getResolveErrorBodyCallback:eb,isContentTypeApplicationJson:qQ,isContentTypeText:OQ}});var ZQ=f((RT,Pa)=>{"use strict";var Ab=d("node:assert"),{Readable:tb}=Oa(),{InvalidArgumentError:nr,RequestAbortedError:PQ}=v(),Re=x(),{getResolveErrorBodyCallback:rb}=Wa(),{AsyncResource:nb}=d("node:async_hooks"),Ss=class extends nb{constructor(A,t){if(!A||typeof A!="object")throw new nr("invalid opts");let{signal:r,method:n,opaque:s,body:o,onInfo:i,responseHeaders:a,throwOnError:c,highWaterMark:l}=A;try{if(typeof t!="function")throw new nr("invalid callback");if(l&&(typeof l!="number"||l<0))throw new nr("invalid highWaterMark");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new nr("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new nr("invalid method");if(i&&typeof i!="function")throw new nr("invalid onInfo callback");super("UNDICI_REQUEST")}catch(u){throw Re.isStream(o)&&Re.destroy(o.on("error",Re.nop),u),u}this.method=n,this.responseHeaders=a||null,this.opaque=s||null,this.callback=t,this.res=null,this.abort=null,this.body=o,this.trailers={},this.context=null,this.onInfo=i||null,this.throwOnError=c,this.highWaterMark=l,this.signal=r,this.reason=null,this.removeAbortListener=null,Re.isStream(o)&&o.on("error",u=>{this.onError(u)}),this.signal&&(this.signal.aborted?this.reason=this.signal.reason??new PQ:this.removeAbortListener=Re.addAbortListener(this.signal,()=>{this.reason=this.signal.reason??new PQ,this.res?Re.destroy(this.res.on("error",Re.nop),this.reason):this.abort&&this.abort(this.reason),this.removeAbortListener&&(this.res?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}))}onConnect(A,t){if(this.reason){A(this.reason);return}Ab(this.callback),this.abort=A,this.context=t}onHeaders(A,t,r,n){let{callback:s,opaque:o,abort:i,context:a,responseHeaders:c,highWaterMark:l}=this,u=c==="raw"?Re.parseRawHeaders(t):Re.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:u});return}let g=c==="raw"?Re.parseHeaders(t):u,E=g["content-type"],Q=g["content-length"],I=new tb({resume:r,abort:i,contentType:E,contentLength:this.method!=="HEAD"&&Q?Number(Q):null,highWaterMark:l});this.removeAbortListener&&I.on("close",this.removeAbortListener),this.callback=null,this.res=I,s!==null&&(this.throwOnError&&A>=400?this.runInAsyncScope(rb,null,{callback:s,body:I,contentType:E,statusCode:A,statusMessage:n,headers:u}):this.runInAsyncScope(s,null,null,{statusCode:A,headers:u,trailers:this.trailers,opaque:o,body:I,context:a}))}onData(A){return this.res.push(A)}onComplete(A){Re.parseHeaders(A,this.trailers),this.res.push(null)}onError(A){let{res:t,callback:r,body:n,opaque:s}=this;r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,A,{opaque:s})})),t&&(this.res=null,queueMicrotask(()=>{Re.destroy(t,A)})),n&&(this.body=null,Re.destroy(n,A)),this.removeAbortListener&&(t?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}};function _Q(e,A){if(A===void 0)return new Promise((t,r)=>{_Q.call(this,e,(n,s)=>n?r(n):t(s))});try{this.dispatch(e,new Ss(e,A))}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}Pa.exports=_Q;Pa.exports.RequestHandler=Ss});var on=f((ST,XQ)=>{var{addAbortListener:sb}=x(),{RequestAbortedError:ob}=v(),sr=Symbol("kListener"),aA=Symbol("kSignal");function zQ(e){e.abort?e.abort(e[aA]?.reason):e.reason=e[aA]?.reason??new ob,KQ(e)}function ib(e,A){if(e.reason=null,e[aA]=null,e[sr]=null,!!A){if(A.aborted){zQ(e);return}e[aA]=A,e[sr]=()=>{zQ(e)},sb(e[aA],e[sr])}}function KQ(e){e[aA]&&("removeEventListener"in e[aA]?e[aA].removeEventListener("abort",e[sr]):e[aA].removeListener("abort",e[sr]),e[aA]=null,e[sr]=null)}XQ.exports={addSignal:ib,removeSignal:KQ}});var AB=f((NT,eB)=>{"use strict";var ab=d("node:assert"),{finished:cb,PassThrough:gb}=d("node:stream"),{InvalidArgumentError:or,InvalidReturnValueError:ub}=v(),ze=x(),{getResolveErrorBodyCallback:lb}=Wa(),{AsyncResource:Eb}=d("node:async_hooks"),{addSignal:Qb,removeSignal:jQ}=on(),_a=class extends Eb{constructor(A,t,r){if(!A||typeof A!="object")throw new or("invalid opts");let{signal:n,method:s,opaque:o,body:i,onInfo:a,responseHeaders:c,throwOnError:l}=A;try{if(typeof r!="function")throw new or("invalid callback");if(typeof t!="function")throw new or("invalid factory");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new or("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new or("invalid method");if(a&&typeof a!="function")throw new or("invalid onInfo callback");super("UNDICI_STREAM")}catch(u){throw ze.isStream(i)&&ze.destroy(i.on("error",ze.nop),u),u}this.responseHeaders=c||null,this.opaque=o||null,this.factory=t,this.callback=r,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=i,this.onInfo=a||null,this.throwOnError=l||!1,ze.isStream(i)&&i.on("error",u=>{this.onError(u)}),Qb(this,n)}onConnect(A,t){if(this.reason){A(this.reason);return}ab(this.callback),this.abort=A,this.context=t}onHeaders(A,t,r,n){let{factory:s,opaque:o,context:i,callback:a,responseHeaders:c}=this,l=c==="raw"?ze.parseRawHeaders(t):ze.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:l});return}this.factory=null;let u;if(this.throwOnError&&A>=400){let Q=(c==="raw"?ze.parseHeaders(t):l)["content-type"];u=new gb,this.callback=null,this.runInAsyncScope(lb,null,{callback:a,body:u,contentType:Q,statusCode:A,statusMessage:n,headers:l})}else{if(s===null)return;if(u=this.runInAsyncScope(s,null,{statusCode:A,headers:l,opaque:o,context:i}),!u||typeof u.write!="function"||typeof u.end!="function"||typeof u.on!="function")throw new ub("expected Writable");cb(u,{readable:!1},E=>{let{callback:Q,res:I,opaque:C,trailers:B,abort:h}=this;this.res=null,(E||!I.readable)&&ze.destroy(I,E),this.callback=null,this.runInAsyncScope(Q,null,E||null,{opaque:C,trailers:B}),E&&h()})}return u.on("drain",r),this.res=u,(u.writableNeedDrain!==void 0?u.writableNeedDrain:u._writableState?.needDrain)!==!0}onData(A){let{res:t}=this;return t?t.write(A):!0}onComplete(A){let{res:t}=this;jQ(this),t&&(this.trailers=ze.parseHeaders(A),t.end())}onError(A){let{res:t,callback:r,opaque:n,body:s}=this;jQ(this),this.factory=null,t?(this.res=null,ze.destroy(t,A)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,A,{opaque:n})})),s&&(this.body=null,ze.destroy(s,A))}};function $Q(e,A,t){if(t===void 0)return new Promise((r,n)=>{$Q.call(this,e,A,(s,o)=>s?n(s):r(o))});try{this.dispatch(e,new _a(e,A,t))}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}eB.exports=$Q});var sB=f((UT,nB)=>{"use strict";var{Readable:rB,Duplex:Bb,PassThrough:Ib}=d("node:stream"),{InvalidArgumentError:an,InvalidReturnValueError:Cb,RequestAbortedError:Za}=v(),He=x(),{AsyncResource:hb}=d("node:async_hooks"),{addSignal:db,removeSignal:fb}=on(),tB=d("node:assert"),ir=Symbol("resume"),za=class extends rB{constructor(){super({autoDestroy:!0}),this[ir]=null}_read(){let{[ir]:A}=this;A&&(this[ir]=null,A())}_destroy(A,t){this._read(),t(A)}},Ka=class extends rB{constructor(A){super({autoDestroy:!0}),this[ir]=A}_read(){this[ir]()}_destroy(A,t){!A&&!this._readableState.endEmitted&&(A=new Za),t(A)}},Xa=class extends hb{constructor(A,t){if(!A||typeof A!="object")throw new an("invalid opts");if(typeof t!="function")throw new an("invalid handler");let{signal:r,method:n,opaque:s,onInfo:o,responseHeaders:i}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new an("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new an("invalid method");if(o&&typeof o!="function")throw new an("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=s||null,this.responseHeaders=i||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=o||null,this.req=new za().on("error",He.nop),this.ret=new Bb({readableObjectMode:A.objectMode,autoDestroy:!0,read:()=>{let{body:a}=this;a?.resume&&a.resume()},write:(a,c,l)=>{let{req:u}=this;u.push(a,c)||u._readableState.destroyed?l():u[ir]=l},destroy:(a,c)=>{let{body:l,req:u,res:g,ret:E,abort:Q}=this;!a&&!E._readableState.endEmitted&&(a=new Za),Q&&a&&Q(),He.destroy(l,a),He.destroy(u,a),He.destroy(g,a),fb(this),c(a)}}).on("prefinish",()=>{let{req:a}=this;a.push(null)}),this.res=null,db(this,r)}onConnect(A,t){let{ret:r,res:n}=this;if(this.reason){A(this.reason);return}tB(!n,"pipeline cannot be retried"),tB(!r.destroyed),this.abort=A,this.context=t}onHeaders(A,t,r){let{opaque:n,handler:s,context:o}=this;if(A<200){if(this.onInfo){let a=this.responseHeaders==="raw"?He.parseRawHeaders(t):He.parseHeaders(t);this.onInfo({statusCode:A,headers:a})}return}this.res=new Ka(r);let i;try{this.handler=null;let a=this.responseHeaders==="raw"?He.parseRawHeaders(t):He.parseHeaders(t);i=this.runInAsyncScope(s,null,{statusCode:A,headers:a,opaque:n,body:this.res,context:o})}catch(a){throw this.res.on("error",He.nop),a}if(!i||typeof i.on!="function")throw new Cb("expected Readable");i.on("data",a=>{let{ret:c,body:l}=this;!c.push(a)&&l.pause&&l.pause()}).on("error",a=>{let{ret:c}=this;He.destroy(c,a)}).on("end",()=>{let{ret:a}=this;a.push(null)}).on("close",()=>{let{ret:a}=this;a._readableState.ended||He.destroy(a,new Za)}),this.body=i}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;t.push(null)}onError(A){let{ret:t}=this;this.handler=null,He.destroy(t,A)}};function pb(e,A){try{let t=new Xa(e,A);return this.dispatch({...e,body:t.req},t),t.ret}catch(t){return new Ib().destroy(t)}}nB.exports=pb});var uB=f((MT,gB)=>{"use strict";var{InvalidArgumentError:ja,SocketError:wb}=v(),{AsyncResource:mb}=d("node:async_hooks"),oB=x(),{addSignal:yb,removeSignal:iB}=on(),aB=d("node:assert"),$a=class extends mb{constructor(A,t){if(!A||typeof A!="object")throw new ja("invalid opts");if(typeof t!="function")throw new ja("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new ja("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=s||null,this.opaque=n||null,this.callback=t,this.abort=null,this.context=null,yb(this,r)}onConnect(A,t){if(this.reason){A(this.reason);return}aB(this.callback),this.abort=A,this.context=null}onHeaders(){throw new wb("bad upgrade",null)}onUpgrade(A,t,r){aB(A===101);let{callback:n,opaque:s,context:o}=this;iB(this),this.callback=null;let i=this.responseHeaders==="raw"?oB.parseRawHeaders(t):oB.parseHeaders(t);this.runInAsyncScope(n,null,null,{headers:i,socket:r,opaque:s,context:o})}onError(A){let{callback:t,opaque:r}=this;iB(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:r})}))}};function cB(e,A){if(A===void 0)return new Promise((t,r)=>{cB.call(this,e,(n,s)=>n?r(n):t(s))});try{let t=new $a(e,A);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},t)}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}gB.exports=cB});var IB=f((LT,BB)=>{"use strict";var Db=d("node:assert"),{AsyncResource:bb}=d("node:async_hooks"),{InvalidArgumentError:ec,SocketError:kb}=v(),lB=x(),{addSignal:Fb,removeSignal:EB}=on(),Ac=class extends bb{constructor(A,t){if(!A||typeof A!="object")throw new ec("invalid opts");if(typeof t!="function")throw new ec("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new ec("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=n||null,this.responseHeaders=s||null,this.callback=t,this.abort=null,Fb(this,r)}onConnect(A,t){if(this.reason){A(this.reason);return}Db(this.callback),this.abort=A,this.context=t}onHeaders(){throw new kb("bad connect",null)}onUpgrade(A,t,r){let{callback:n,opaque:s,context:o}=this;EB(this),this.callback=null;let i=t;i!=null&&(i=this.responseHeaders==="raw"?lB.parseRawHeaders(t):lB.parseHeaders(t)),this.runInAsyncScope(n,null,null,{statusCode:A,headers:i,socket:r,opaque:s,context:o})}onError(A){let{callback:t,opaque:r}=this;EB(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:r})}))}};function QB(e,A){if(A===void 0)return new Promise((t,r)=>{QB.call(this,e,(n,s)=>n?r(n):t(s))});try{let t=new Ac(e,A);this.dispatch({...e,method:"CONNECT"},t)}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}BB.exports=QB});var CB=f((TT,ar)=>{"use strict";ar.exports.request=ZQ();ar.exports.stream=AB();ar.exports.pipeline=sB();ar.exports.upgrade=uB();ar.exports.connect=IB()});var rc=f((xT,dB)=>{"use strict";var{UndiciError:Rb}=v(),hB=Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"),tc=class e extends Rb{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=A||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}static[Symbol.hasInstance](A){return A&&A[hB]===!0}[hB]=!0};dB.exports={MockNotMatchedError:tc}});var cr=f((YT,fB)=>{"use strict";fB.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var cn=f((GT,NB)=>{"use strict";var{MockNotMatchedError:Qt}=rc(),{kDispatches:Ns,kMockAgent:Sb,kOriginalDispatch:Nb,kOrigin:Ub,kGetNetConnect:Mb}=cr(),{buildURL:Lb}=x(),{STATUS_CODES:Tb}=d("node:http"),{types:{isPromise:xb}}=d("node:util");function yA(e,A){return typeof e=="string"?e===A:e instanceof RegExp?e.test(A):typeof e=="function"?e(A)===!0:!1}function wB(e){return Object.fromEntries(Object.entries(e).map(([A,t])=>[A.toLocaleLowerCase(),t]))}function mB(e,A){if(Array.isArray(e)){for(let t=0;t<e.length;t+=2)if(e[t].toLocaleLowerCase()===A.toLocaleLowerCase())return e[t+1];return}else return typeof e.get=="function"?e.get(A):wB(e)[A.toLocaleLowerCase()]}function oc(e){let A=e.slice(),t=[];for(let r=0;r<A.length;r+=2)t.push([A[r],A[r+1]]);return Object.fromEntries(t)}function yB(e,A){if(typeof e.headers=="function")return Array.isArray(A)&&(A=oc(A)),e.headers(A?wB(A):{});if(typeof e.headers>"u")return!0;if(typeof A!="object"||typeof e.headers!="object")return!1;for(let[t,r]of Object.entries(e.headers)){let n=mB(A,t);if(!yA(r,n))return!1}return!0}function pB(e){if(typeof e!="string")return e;let A=e.split("?");if(A.length!==2)return e;let t=new URLSearchParams(A.pop());return t.sort(),[...A,t.toString()].join("?")}function Yb(e,{path:A,method:t,body:r,headers:n}){let s=yA(e.path,A),o=yA(e.method,t),i=typeof e.body<"u"?yA(e.body,r):!0,a=yB(e,n);return s&&o&&i&&a}function DB(e){return Buffer.isBuffer(e)||e instanceof Uint8Array||e instanceof ArrayBuffer?e:typeof e=="object"?JSON.stringify(e):e.toString()}function bB(e,A){let t=A.query?Lb(A.path,A.query):A.path,r=typeof t=="string"?pB(t):t,n=e.filter(({consumed:s})=>!s).filter(({path:s})=>yA(pB(s),r));if(n.length===0)throw new Qt(`Mock dispatch not matched for path '${r}'`);if(n=n.filter(({method:s})=>yA(s,A.method)),n.length===0)throw new Qt(`Mock dispatch not matched for method '${A.method}' on path '${r}'`);if(n=n.filter(({body:s})=>typeof s<"u"?yA(s,A.body):!0),n.length===0)throw new Qt(`Mock dispatch not matched for body '${A.body}' on path '${r}'`);if(n=n.filter(s=>yB(s,A.headers)),n.length===0){let s=typeof A.headers=="object"?JSON.stringify(A.headers):A.headers;throw new Qt(`Mock dispatch not matched for headers '${s}' on path '${r}'`)}return n[0]}function Gb(e,A,t){let r={timesInvoked:0,times:1,persist:!1,consumed:!1},n=typeof t=="function"?{callback:t}:{...t},s={...r,...A,pending:!0,data:{error:null,...n}};return e.push(s),s}function nc(e,A){let t=e.findIndex(r=>r.consumed?Yb(r,A):!1);t!==-1&&e.splice(t,1)}function kB(e){let{path:A,method:t,body:r,headers:n,query:s}=e;return{path:A,method:t,body:r,headers:n,query:s}}function sc(e){let A=Object.keys(e),t=[];for(let r=0;r<A.length;++r){let n=A[r],s=e[n],o=Buffer.from(`${n}`);if(Array.isArray(s))for(let i=0;i<s.length;++i)t.push(o,Buffer.from(`${s[i]}`));else t.push(o,Buffer.from(`${s}`))}return t}function FB(e){return Tb[e]||"unknown"}async function Jb(e){let A=[];for await(let t of e)A.push(t);return Buffer.concat(A).toString("utf8")}function RB(e,A){let t=kB(e),r=bB(this[Ns],t);r.timesInvoked++,r.data.callback&&(r.data={...r.data,...r.data.callback(e)});let{data:{statusCode:n,data:s,headers:o,trailers:i,error:a},delay:c,persist:l}=r,{timesInvoked:u,times:g}=r;if(r.consumed=!l&&u>=g,r.pending=u<g,a!==null)return nc(this[Ns],t),A.onError(a),!0;typeof c=="number"&&c>0?setTimeout(()=>{E(this[Ns])},c):E(this[Ns]);function E(I,C=s){let B=Array.isArray(e.headers)?oc(e.headers):e.headers,h=typeof C=="function"?C({...e,headers:B}):C;if(xb(h)){h.then(_=>E(I,_));return}let y=DB(h),m=sc(o),T=sc(i);A.onConnect?.(_=>A.onError(_),null),A.onHeaders?.(n,m,Q,FB(n)),A.onData?.(Buffer.from(y)),A.onComplete?.(T),nc(I,t)}function Q(){}return!0}function vb(){let e=this[Sb],A=this[Ub],t=this[Nb];return function(n,s){if(e.isMockActive)try{RB.call(this,n,s)}catch(o){if(o instanceof Qt){let i=e[Mb]();if(i===!1)throw new Qt(`${o.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`);if(SB(i,A))t.call(this,n,s);else throw new Qt(`${o.message}: subsequent request to origin ${A} was not allowed (net.connect is not enabled for this origin)`)}else throw o}else t.call(this,n,s)}}function SB(e,A){let t=new URL(A);return e===!0?!0:!!(Array.isArray(e)&&e.some(r=>yA(r,t.host)))}function Hb(e){if(e){let{agent:A,...t}=e;return t}}NB.exports={getResponseData:DB,getMockDispatch:bB,addMockDispatch:Gb,deleteMockDispatch:nc,buildKey:kB,generateKeyValues:sc,matchValue:yA,getResponse:Jb,getStatusText:FB,mockDispatch:RB,buildMockDispatch:vb,checkNetConnect:SB,buildMockOptions:Hb,getHeaderByName:mB,buildHeadersFromArray:oc}});var Ec=f((JT,lc)=>{"use strict";var{getResponseData:Vb,buildKey:qb,addMockDispatch:ic}=cn(),{kDispatches:Us,kDispatchKey:Ms,kDefaultHeaders:ac,kDefaultTrailers:cc,kContentLength:gc,kMockDispatch:Ls}=cr(),{InvalidArgumentError:cA}=v(),{buildURL:Ob}=x(),gr=class{constructor(A){this[Ls]=A}delay(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new cA("waitInMs must be a valid integer > 0");return this[Ls].delay=A,this}persist(){return this[Ls].persist=!0,this}times(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new cA("repeatTimes must be a valid integer > 0");return this[Ls].times=A,this}},uc=class{constructor(A,t){if(typeof A!="object")throw new cA("opts must be an object");if(typeof A.path>"u")throw new cA("opts.path must be defined");if(typeof A.method>"u"&&(A.method="GET"),typeof A.path=="string")if(A.query)A.path=Ob(A.path,A.query);else{let r=new URL(A.path,"data://");A.path=r.pathname+r.search}typeof A.method=="string"&&(A.method=A.method.toUpperCase()),this[Ms]=qb(A),this[Us]=t,this[ac]={},this[cc]={},this[gc]=!1}createMockScopeDispatchData({statusCode:A,data:t,responseOptions:r}){let n=Vb(t),s=this[gc]?{"content-length":n.length}:{},o={...this[ac],...s,...r.headers},i={...this[cc],...r.trailers};return{statusCode:A,data:t,headers:o,trailers:i}}validateReplyParameters(A){if(typeof A.statusCode>"u")throw new cA("statusCode must be defined");if(typeof A.responseOptions!="object"||A.responseOptions===null)throw new cA("responseOptions must be an object")}reply(A){if(typeof A=="function"){let s=i=>{let a=A(i);if(typeof a!="object"||a===null)throw new cA("reply options callback must return an object");let c={data:"",responseOptions:{},...a};return this.validateReplyParameters(c),{...this.createMockScopeDispatchData(c)}},o=ic(this[Us],this[Ms],s);return new gr(o)}let t={statusCode:A,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(t);let r=this.createMockScopeDispatchData(t),n=ic(this[Us],this[Ms],r);return new gr(n)}replyWithError(A){if(typeof A>"u")throw new cA("error must be defined");let t=ic(this[Us],this[Ms],{error:A});return new gr(t)}defaultReplyHeaders(A){if(typeof A>"u")throw new cA("headers must be defined");return this[ac]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new cA("trailers must be defined");return this[cc]=A,this}replyContentLength(){return this[gc]=!0,this}};lc.exports.MockInterceptor=uc;lc.exports.MockScope=gr});var Ic=f((vT,GB)=>{"use strict";var{promisify:Wb}=d("node:util"),Pb=jt(),{buildMockDispatch:_b}=cn(),{kDispatches:UB,kMockAgent:MB,kClose:LB,kOriginalClose:TB,kOrigin:xB,kOriginalDispatch:Zb,kConnected:Qc}=cr(),{MockInterceptor:zb}=Ec(),YB=j(),{InvalidArgumentError:Kb}=v(),Bc=class extends Pb{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new Kb("Argument opts.agent must implement Agent");this[MB]=t.agent,this[xB]=A,this[UB]=[],this[Qc]=1,this[Zb]=this.dispatch,this[TB]=this.close.bind(this),this.dispatch=_b.call(this),this.close=this[LB]}get[YB.kConnected](){return this[Qc]}intercept(A){return new zb(A,this[UB])}async[LB](){await Wb(this[TB])(),this[Qc]=0,this[MB][YB.kClients].delete(this[xB])}};GB.exports=Bc});var dc=f((HT,WB)=>{"use strict";var{promisify:Xb}=d("node:util"),jb=$t(),{buildMockDispatch:$b}=cn(),{kDispatches:JB,kMockAgent:vB,kClose:HB,kOriginalClose:VB,kOrigin:qB,kOriginalDispatch:ek,kConnected:Cc}=cr(),{MockInterceptor:Ak}=Ec(),OB=j(),{InvalidArgumentError:tk}=v(),hc=class extends jb{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new tk("Argument opts.agent must implement Agent");this[vB]=t.agent,this[qB]=A,this[JB]=[],this[Cc]=1,this[ek]=this.dispatch,this[VB]=this.close.bind(this),this.dispatch=$b.call(this),this.close=this[HB]}get[OB.kConnected](){return this[Cc]}intercept(A){return new Ak(A,this[JB])}async[HB](){await Xb(this[VB])(),this[Cc]=0,this[vB][OB.kClients].delete(this[qB])}};WB.exports=hc});var _B=f((qT,PB)=>{"use strict";var rk={pronoun:"it",is:"is",was:"was",this:"this"},nk={pronoun:"they",is:"are",was:"were",this:"these"};PB.exports=class{constructor(A,t){this.singular=A,this.plural=t}pluralize(A){let t=A===1,r=t?rk:nk,n=t?this.singular:this.plural;return{...r,count:A,noun:n}}}});var zB=f((WT,ZB)=>{"use strict";var{Transform:sk}=d("node:stream"),{Console:ok}=d("node:console"),ik=process.versions.icu?"\u2705":"Y ",ak=process.versions.icu?"\u274C":"N ";ZB.exports=class{constructor({disableColors:A}={}){this.transform=new sk({transform(t,r,n){n(null,t)}}),this.logger=new ok({stdout:this.transform,inspectOptions:{colors:!A&&!process.env.CI}})}format(A){let t=A.map(({method:r,path:n,data:{statusCode:s},persist:o,times:i,timesInvoked:a,origin:c})=>({Method:r,Origin:c,Path:n,"Status code":s,Persistent:o?ik:ak,Invocations:a,Remaining:o?1/0:i-a}));return this.logger.table(t),this.transform.read().toString()}}});var $B=f((PT,jB)=>{"use strict";var{kClients:Bt}=j(),ck=er(),{kAgent:fc,kMockAgentSet:Ts,kMockAgentGet:KB,kDispatches:pc,kIsMockActive:xs,kNetConnect:It,kGetNetConnect:gk,kOptions:Ys,kFactory:Gs}=cr(),uk=Ic(),lk=dc(),{matchValue:Ek,buildMockOptions:Qk}=cn(),{InvalidArgumentError:XB,UndiciError:Bk}=v(),Ik=Ur(),Ck=_B(),hk=zB(),wc=class extends Ik{constructor(A){if(super(A),this[It]=!0,this[xs]=!0,A?.agent&&typeof A.agent.dispatch!="function")throw new XB("Argument opts.agent must implement Agent");let t=A?.agent?A.agent:new ck(A);this[fc]=t,this[Bt]=t[Bt],this[Ys]=Qk(A)}get(A){let t=this[KB](A);return t||(t=this[Gs](A),this[Ts](A,t)),t}dispatch(A,t){return this.get(A.origin),this[fc].dispatch(A,t)}async close(){await this[fc].close(),this[Bt].clear()}deactivate(){this[xs]=!1}activate(){this[xs]=!0}enableNetConnect(A){if(typeof A=="string"||typeof A=="function"||A instanceof RegExp)Array.isArray(this[It])?this[It].push(A):this[It]=[A];else if(typeof A>"u")this[It]=!0;else throw new XB("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[It]=!1}get isMockActive(){return this[xs]}[Ts](A,t){this[Bt].set(A,t)}[Gs](A){let t=Object.assign({agent:this},this[Ys]);return this[Ys]&&this[Ys].connections===1?new uk(A,t):new lk(A,t)}[KB](A){let t=this[Bt].get(A);if(t)return t;if(typeof A!="string"){let r=this[Gs]("http://localhost:9999");return this[Ts](A,r),r}for(let[r,n]of Array.from(this[Bt]))if(n&&typeof r!="string"&&Ek(r,A)){let s=this[Gs](A);return this[Ts](A,s),s[pc]=n[pc],s}}[gk](){return this[It]}pendingInterceptors(){let A=this[Bt];return Array.from(A.entries()).flatMap(([t,r])=>r[pc].map(n=>({...n,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new hk}={}){let t=this.pendingInterceptors();if(t.length===0)return;let r=new Ck("interceptor","interceptors").pluralize(t.length);throw new Bk(`
41
- ${r.count} ${r.noun} ${r.is} pending:
42
-
43
- ${A.format(t)}
44
- `.trim())}};jB.exports=wc});var Js=f((_T,rI)=>{"use strict";var eI=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:dk}=v(),fk=er();tI()===void 0&&AI(new fk);function AI(e){if(!e||typeof e.dispatch!="function")throw new dk("Argument agent must implement Agent");Object.defineProperty(globalThis,eI,{value:e,writable:!0,enumerable:!1,configurable:!1})}function tI(){return globalThis[eI]}rI.exports={setGlobalDispatcher:AI,getGlobalDispatcher:tI}});var vs=f((zT,nI)=>{"use strict";nI.exports=class{#e;constructor(A){if(typeof A!="object"||A===null)throw new TypeError("handler must be an object");this.#e=A}onConnect(...A){return this.#e.onConnect?.(...A)}onError(...A){return this.#e.onError?.(...A)}onUpgrade(...A){return this.#e.onUpgrade?.(...A)}onResponseStarted(...A){return this.#e.onResponseStarted?.(...A)}onHeaders(...A){return this.#e.onHeaders?.(...A)}onData(...A){return this.#e.onData?.(...A)}onComplete(...A){return this.#e.onComplete?.(...A)}onBodySent(...A){return this.#e.onBodySent?.(...A)}}});var oI=f((KT,sI)=>{"use strict";var pk=hs();sI.exports=e=>{let A=e?.maxRedirections;return t=>function(n,s){let{maxRedirections:o=A,...i}=n;if(!o)return t(n,s);let a=new pk(t,o,n,s);return t(i,a)}}});var aI=f((XT,iI)=>{"use strict";var wk=Rs();iI.exports=e=>A=>function(r,n){return A(r,new wk({...r,retryOptions:{...e,...r.retryOptions}},{handler:n,dispatch:A}))}});var gI=f((jT,cI)=>{"use strict";var mk=x(),{InvalidArgumentError:yk,RequestAbortedError:Dk}=v(),bk=vs(),mc=class extends bk{#e=1024*1024;#A=null;#t=!1;#s=!1;#n=0;#r=null;#o=null;constructor({maxSize:A},t){if(super(t),A!=null&&(!Number.isFinite(A)||A<1))throw new yk("maxSize must be a number greater than 0");this.#e=A??this.#e,this.#o=t}onConnect(A){this.#A=A,this.#o.onConnect(this.#i.bind(this))}#i(A){this.#s=!0,this.#r=A}onHeaders(A,t,r,n){let o=mk.parseHeaders(t)["content-length"];if(o!=null&&o>this.#e)throw new Dk(`Response size (${o}) larger than maxSize (${this.#e})`);return this.#s?!0:this.#o.onHeaders(A,t,r,n)}onError(A){this.#t||(A=this.#r??A,this.#o.onError(A))}onData(A){return this.#n=this.#n+A.length,this.#n>=this.#e&&(this.#t=!0,this.#s?this.#o.onError(this.#r):this.#o.onComplete([])),!0}onComplete(A){if(!this.#t){if(this.#s){this.#o.onError(this.reason);return}this.#o.onComplete(A)}}};function kk({maxSize:e}={maxSize:1024*1024}){return A=>function(r,n){let{dumpMaxSize:s=e}=r,o=new mc({maxSize:s},n);return A(r,o)}}cI.exports=kk});var EI=f(($T,lI)=>{"use strict";var{isIP:Fk}=d("node:net"),{lookup:Rk}=d("node:dns"),Sk=vs(),{InvalidArgumentError:ur,InformationalError:Nk}=v(),uI=Math.pow(2,31)-1,yc=class{#e=0;#A=0;#t=new Map;dualStack=!0;affinity=null;lookup=null;pick=null;constructor(A){this.#e=A.maxTTL,this.#A=A.maxItems,this.dualStack=A.dualStack,this.affinity=A.affinity,this.lookup=A.lookup??this.#s,this.pick=A.pick??this.#n}get full(){return this.#t.size===this.#A}runLookup(A,t,r){let n=this.#t.get(A.hostname);if(n==null&&this.full){r(null,A.origin);return}let s={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...t.dns,maxTTL:this.#e,maxItems:this.#A};if(n==null)this.lookup(A,s,(o,i)=>{if(o||i==null||i.length===0){r(o??new Nk("No DNS entries found"));return}this.setRecords(A,i);let a=this.#t.get(A.hostname),c=this.pick(A,a,s.affinity),l;typeof c.port=="number"?l=`:${c.port}`:A.port!==""?l=`:${A.port}`:l="",r(null,`${A.protocol}//${c.family===6?`[${c.address}]`:c.address}${l}`)});else{let o=this.pick(A,n,s.affinity);if(o==null){this.#t.delete(A.hostname),this.runLookup(A,t,r);return}let i;typeof o.port=="number"?i=`:${o.port}`:A.port!==""?i=`:${A.port}`:i="",r(null,`${A.protocol}//${o.family===6?`[${o.address}]`:o.address}${i}`)}}#s(A,t,r){Rk(A.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(n,s)=>{if(n)return r(n);let o=new Map;for(let i of s)o.set(`${i.address}:${i.family}`,i);r(null,o.values())})}#n(A,t,r){let n=null,{records:s,offset:o}=t,i;if(this.dualStack?(r==null&&(o==null||o===uI?(t.offset=0,r=4):(t.offset++,r=(t.offset&1)===1?6:4)),s[r]!=null&&s[r].ips.length>0?i=s[r]:i=s[r===4?6:4]):i=s[r],i==null||i.ips.length===0)return n;i.offset==null||i.offset===uI?i.offset=0:i.offset++;let a=i.offset%i.ips.length;return n=i.ips[a]??null,n==null?n:Date.now()-n.timestamp>n.ttl?(i.ips.splice(a,1),this.pick(A,t,r)):n}setRecords(A,t){let r=Date.now(),n={records:{4:null,6:null}};for(let s of t){s.timestamp=r,typeof s.ttl=="number"?s.ttl=Math.min(s.ttl,this.#e):s.ttl=this.#e;let o=n.records[s.family]??{ips:[]};o.ips.push(s),n.records[s.family]=o}this.#t.set(A.hostname,n)}getHandler(A,t){return new Dc(this,A,t)}},Dc=class extends Sk{#e=null;#A=null;#t=null;#s=null;#n=null;constructor(A,{origin:t,handler:r,dispatch:n},s){super(r),this.#n=t,this.#s=r,this.#A={...s},this.#e=A,this.#t=n}onError(A){switch(A.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#e.dualStack){this.#e.runLookup(this.#n,this.#A,(t,r)=>{if(t)return this.#s.onError(t);let n={...this.#A,origin:r};this.#t(n,this)});return}this.#s.onError(A);return}case"ENOTFOUND":this.#e.deleteRecord(this.#n);default:this.#s.onError(A);break}}};lI.exports=e=>{if(e?.maxTTL!=null&&(typeof e?.maxTTL!="number"||e?.maxTTL<0))throw new ur("Invalid maxTTL. Must be a positive number");if(e?.maxItems!=null&&(typeof e?.maxItems!="number"||e?.maxItems<1))throw new ur("Invalid maxItems. Must be a positive number and greater than zero");if(e?.affinity!=null&&e?.affinity!==4&&e?.affinity!==6)throw new ur("Invalid affinity. Must be either 4 or 6");if(e?.dualStack!=null&&typeof e?.dualStack!="boolean")throw new ur("Invalid dualStack. Must be a boolean");if(e?.lookup!=null&&typeof e?.lookup!="function")throw new ur("Invalid lookup. Must be a function");if(e?.pick!=null&&typeof e?.pick!="function")throw new ur("Invalid pick. Must be a function");let A=e?.dualStack??!0,t;A?t=e?.affinity??null:t=e?.affinity??4;let r={maxTTL:e?.maxTTL??1e4,lookup:e?.lookup??null,pick:e?.pick??null,dualStack:A,affinity:t,maxItems:e?.maxItems??1/0},n=new yc(r);return s=>function(i,a){let c=i.origin.constructor===URL?i.origin:new URL(i.origin);return Fk(c.hostname)!==0?s(i,a):(n.runLookup(c,i,(l,u)=>{if(l)return a.onError(l);let g=null;g={...i,servername:c.hostname,origin:u,headers:{host:c.hostname,...i.headers}},s(g,n.getHandler({origin:c,dispatch:s,handler:a},i))}),!0)}}});var Ct=f((ex,fI)=>{"use strict";var{kConstruct:Uk}=j(),{kEnumerableProperty:lr}=x(),{iteratorMixin:Mk,isValidHeaderName:gn,isValidHeaderValue:BI}=be(),{webidl:J}=ue(),bc=d("node:assert"),Hs=d("node:util"),ie=Symbol("headers map"),Se=Symbol("headers map sorted");function QI(e){return e===10||e===13||e===9||e===32}function II(e){let A=0,t=e.length;for(;t>A&&QI(e.charCodeAt(t-1));)--t;for(;t>A&&QI(e.charCodeAt(A));)++A;return A===0&&t===e.length?e:e.substring(A,t)}function CI(e,A){if(Array.isArray(A))for(let t=0;t<A.length;++t){let r=A[t];if(r.length!==2)throw J.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${r.length}.`});kc(e,r[0],r[1])}else if(typeof A=="object"&&A!==null){let t=Object.keys(A);for(let r=0;r<t.length;++r)kc(e,t[r],A[t[r]])}else throw J.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}function kc(e,A,t){if(t=II(t),gn(A)){if(!BI(t))throw J.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw J.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"});if(dI(e)==="immutable")throw new TypeError("immutable");return Fc(e).append(A,t,!1)}function hI(e,A){return e[0]<A[0]?-1:1}var Vs=class e{cookies=null;constructor(A){A instanceof e?(this[ie]=new Map(A[ie]),this[Se]=A[Se],this.cookies=A.cookies===null?null:[...A.cookies]):(this[ie]=new Map(A),this[Se]=null)}contains(A,t){return this[ie].has(t?A:A.toLowerCase())}clear(){this[ie].clear(),this[Se]=null,this.cookies=null}append(A,t,r){this[Se]=null;let n=r?A:A.toLowerCase(),s=this[ie].get(n);if(s){let o=n==="cookie"?"; ":", ";this[ie].set(n,{name:s.name,value:`${s.value}${o}${t}`})}else this[ie].set(n,{name:A,value:t});n==="set-cookie"&&(this.cookies??=[]).push(t)}set(A,t,r){this[Se]=null;let n=r?A:A.toLowerCase();n==="set-cookie"&&(this.cookies=[t]),this[ie].set(n,{name:A,value:t})}delete(A,t){this[Se]=null,t||(A=A.toLowerCase()),A==="set-cookie"&&(this.cookies=null),this[ie].delete(A)}get(A,t){return this[ie].get(t?A:A.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:A,1:{value:t}}of this[ie])yield[A,t]}get entries(){let A={};if(this[ie].size!==0)for(let{name:t,value:r}of this[ie].values())A[t]=r;return A}rawValues(){return this[ie].values()}get entriesList(){let A=[];if(this[ie].size!==0)for(let{0:t,1:{name:r,value:n}}of this[ie])if(t==="set-cookie")for(let s of this.cookies)A.push([r,s]);else A.push([r,n]);return A}toSortedArray(){let A=this[ie].size,t=new Array(A);if(A<=32){if(A===0)return t;let r=this[ie][Symbol.iterator](),n=r.next().value;t[0]=[n[0],n[1].value],bc(n[1].value!==null);for(let s=1,o=0,i=0,a=0,c=0,l,u;s<A;++s){for(u=r.next().value,l=t[s]=[u[0],u[1].value],bc(l[1]!==null),a=0,i=s;a<i;)c=a+(i-a>>1),t[c][0]<=l[0]?a=c+1:i=c;if(s!==c){for(o=s;o>a;)t[o]=t[--o];t[a]=l}}if(!r.next().done)throw new TypeError("Unreachable");return t}else{let r=0;for(let{0:n,1:{value:s}}of this[ie])t[r++]=[n,s],bc(s!==null);return t.sort(hI)}}},Ke=class e{#e;#A;constructor(A=void 0){J.util.markAsUncloneable(this),A!==Uk&&(this.#A=new Vs,this.#e="none",A!==void 0&&(A=J.converters.HeadersInit(A,"Headers contructor","init"),CI(this,A)))}append(A,t){J.brandCheck(this,e),J.argumentLengthCheck(arguments,2,"Headers.append");let r="Headers.append";return A=J.converters.ByteString(A,r,"name"),t=J.converters.ByteString(t,r,"value"),kc(this,A,t)}delete(A){if(J.brandCheck(this,e),J.argumentLengthCheck(arguments,1,"Headers.delete"),A=J.converters.ByteString(A,"Headers.delete","name"),!gn(A))throw J.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#A.contains(A,!1)&&this.#A.delete(A,!1)}get(A){J.brandCheck(this,e),J.argumentLengthCheck(arguments,1,"Headers.get");let t="Headers.get";if(A=J.converters.ByteString(A,t,"name"),!gn(A))throw J.errors.invalidArgument({prefix:t,value:A,type:"header name"});return this.#A.get(A,!1)}has(A){J.brandCheck(this,e),J.argumentLengthCheck(arguments,1,"Headers.has");let t="Headers.has";if(A=J.converters.ByteString(A,t,"name"),!gn(A))throw J.errors.invalidArgument({prefix:t,value:A,type:"header name"});return this.#A.contains(A,!1)}set(A,t){J.brandCheck(this,e),J.argumentLengthCheck(arguments,2,"Headers.set");let r="Headers.set";if(A=J.converters.ByteString(A,r,"name"),t=J.converters.ByteString(t,r,"value"),t=II(t),gn(A)){if(!BI(t))throw J.errors.invalidArgument({prefix:r,value:t,type:"header value"})}else throw J.errors.invalidArgument({prefix:r,value:A,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#A.set(A,t,!1)}getSetCookie(){J.brandCheck(this,e);let A=this.#A.cookies;return A?[...A]:[]}get[Se](){if(this.#A[Se])return this.#A[Se];let A=[],t=this.#A.toSortedArray(),r=this.#A.cookies;if(r===null||r.length===1)return this.#A[Se]=t;for(let n=0;n<t.length;++n){let{0:s,1:o}=t[n];if(s==="set-cookie")for(let i=0;i<r.length;++i)A.push([s,r[i]]);else A.push([s,o])}return this.#A[Se]=A}[Hs.inspect.custom](A,t){return t.depth??=A,`Headers ${Hs.formatWithOptions(t,this.#A.entries)}`}static getHeadersGuard(A){return A.#e}static setHeadersGuard(A,t){A.#e=t}static getHeadersList(A){return A.#A}static setHeadersList(A,t){A.#A=t}},{getHeadersGuard:dI,setHeadersGuard:Lk,getHeadersList:Fc,setHeadersList:Tk}=Ke;Reflect.deleteProperty(Ke,"getHeadersGuard");Reflect.deleteProperty(Ke,"setHeadersGuard");Reflect.deleteProperty(Ke,"getHeadersList");Reflect.deleteProperty(Ke,"setHeadersList");Mk("Headers",Ke,Se,0,1);Object.defineProperties(Ke.prototype,{append:lr,delete:lr,get:lr,has:lr,set:lr,getSetCookie:lr,[Symbol.toStringTag]:{value:"Headers",configurable:!0},[Hs.inspect.custom]:{enumerable:!1}});J.converters.HeadersInit=function(e,A,t){if(J.util.Type(e)==="Object"){let r=Reflect.get(e,Symbol.iterator);if(!Hs.types.isProxy(e)&&r===Ke.prototype.entries)try{return Fc(e).entriesList}catch{}return typeof r=="function"?J.converters["sequence<sequence<ByteString>>"](e,A,t,r.bind(e)):J.converters["record<ByteString, ByteString>"](e,A,t)}throw J.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};fI.exports={fill:CI,compareHeaderName:hI,Headers:Ke,HeadersList:Vs,getHeadersGuard:dI,setHeadersGuard:Lk,setHeadersList:Tk,getHeadersList:Fc}});var ln=f((Ax,UI)=>{"use strict";var{Headers:bI,HeadersList:pI,fill:xk,getHeadersGuard:Yk,setHeadersGuard:kI,setHeadersList:FI}=Ct(),{extractBody:wI,cloneBody:Gk,mixinBody:Jk,hasFinalizationRegistry:RI,streamRegistry:SI,bodyUnusable:vk}=Wt(),Rc=x(),mI=d("node:util"),{kEnumerableProperty:Ne}=Rc,{isValidReasonPhrase:Hk,isCancelled:Vk,isAborted:qk,isBlobLike:Ok,serializeJavascriptValueToJSONString:Wk,isErrorLike:Pk,isomorphicEncode:_k,environmentSettingsObject:Zk}=be(),{redirectStatusSet:zk,nullBodyStatus:Kk}=Tr(),{kState:ee,kHeaders:DA}=LA(),{webidl:L}=ue(),{FormData:Xk}=Hr(),{URLSerializer:yI}=de(),{kConstruct:Os}=j(),Sc=d("node:assert"),{types:jk}=d("node:util"),$k=new TextEncoder("utf-8"),ht=class e{static error(){return un(Ws(),"immutable")}static json(A,t={}){L.argumentLengthCheck(arguments,1,"Response.json"),t!==null&&(t=L.converters.ResponseInit(t));let r=$k.encode(Wk(A)),n=wI(r),s=un(Er({}),"response");return DI(s,t,{body:n[0],type:"application/json"}),s}static redirect(A,t=302){L.argumentLengthCheck(arguments,1,"Response.redirect"),A=L.converters.USVString(A),t=L.converters["unsigned short"](t);let r;try{r=new URL(A,Zk.settingsObject.baseUrl)}catch(o){throw new TypeError(`Failed to parse URL from ${A}`,{cause:o})}if(!zk.has(t))throw new RangeError(`Invalid status code ${t}`);let n=un(Er({}),"immutable");n[ee].status=t;let s=_k(yI(r));return n[ee].headersList.append("location",s,!0),n}constructor(A=null,t={}){if(L.util.markAsUncloneable(this),A===Os)return;A!==null&&(A=L.converters.BodyInit(A)),t=L.converters.ResponseInit(t),this[ee]=Er({}),this[DA]=new bI(Os),kI(this[DA],"response"),FI(this[DA],this[ee].headersList);let r=null;if(A!=null){let[n,s]=wI(A);r={body:n,type:s}}DI(this,t,r)}get type(){return L.brandCheck(this,e),this[ee].type}get url(){L.brandCheck(this,e);let A=this[ee].urlList,t=A[A.length-1]??null;return t===null?"":yI(t,!0)}get redirected(){return L.brandCheck(this,e),this[ee].urlList.length>1}get status(){return L.brandCheck(this,e),this[ee].status}get ok(){return L.brandCheck(this,e),this[ee].status>=200&&this[ee].status<=299}get statusText(){return L.brandCheck(this,e),this[ee].statusText}get headers(){return L.brandCheck(this,e),this[DA]}get body(){return L.brandCheck(this,e),this[ee].body?this[ee].body.stream:null}get bodyUsed(){return L.brandCheck(this,e),!!this[ee].body&&Rc.isDisturbed(this[ee].body.stream)}clone(){if(L.brandCheck(this,e),vk(this))throw L.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=Nc(this[ee]);return RI&&this[ee].body?.stream&&SI.register(this,new WeakRef(this[ee].body.stream)),un(A,Yk(this[DA]))}[mI.inspect.custom](A,t){t.depth===null&&(t.depth=2),t.colors??=!0;let r={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${mI.formatWithOptions(t,r)}`}};Jk(ht);Object.defineProperties(ht.prototype,{type:Ne,url:Ne,status:Ne,ok:Ne,redirected:Ne,statusText:Ne,headers:Ne,clone:Ne,body:Ne,bodyUsed:Ne,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(ht,{json:Ne,redirect:Ne,error:Ne});function Nc(e){if(e.internalResponse)return NI(Nc(e.internalResponse),e.type);let A=Er({...e,body:null});return e.body!=null&&(A.body=Gk(A,e.body)),A}function Er(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e?.headersList?new pI(e?.headersList):new pI,urlList:e?.urlList?[...e.urlList]:[]}}function Ws(e){let A=Pk(e);return Er({type:"error",status:0,error:A?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function eF(e){return e.type==="error"&&e.status===0}function qs(e,A){return A={internalResponse:e,...A},new Proxy(e,{get(t,r){return r in A?A[r]:t[r]},set(t,r,n){return Sc(!(r in A)),t[r]=n,!0}})}function NI(e,A){if(A==="basic")return qs(e,{type:"basic",headersList:e.headersList});if(A==="cors")return qs(e,{type:"cors",headersList:e.headersList});if(A==="opaque")return qs(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(A==="opaqueredirect")return qs(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Sc(!1)}function AF(e,A=null){return Sc(Vk(e)),qk(e)?Ws(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:A})):Ws(Object.assign(new DOMException("Request was cancelled."),{cause:A}))}function DI(e,A,t){if(A.status!==null&&(A.status<200||A.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in A&&A.statusText!=null&&!Hk(String(A.statusText)))throw new TypeError("Invalid statusText");if("status"in A&&A.status!=null&&(e[ee].status=A.status),"statusText"in A&&A.statusText!=null&&(e[ee].statusText=A.statusText),"headers"in A&&A.headers!=null&&xk(e[DA],A.headers),t){if(Kk.includes(e.status))throw L.errors.exception({header:"Response constructor",message:`Invalid response status code ${e.status}`});e[ee].body=t.body,t.type!=null&&!e[ee].headersList.contains("content-type",!0)&&e[ee].headersList.append("content-type",t.type,!0)}}function un(e,A){let t=new ht(Os);return t[ee]=e,t[DA]=new bI(Os),FI(t[DA],e.headersList),kI(t[DA],A),RI&&e.body?.stream&&SI.register(t,new WeakRef(e.body.stream)),t}L.converters.ReadableStream=L.interfaceConverter(ReadableStream);L.converters.FormData=L.interfaceConverter(Xk);L.converters.URLSearchParams=L.interfaceConverter(URLSearchParams);L.converters.XMLHttpRequestBodyInit=function(e,A,t){return typeof e=="string"?L.converters.USVString(e,A,t):Ok(e)?L.converters.Blob(e,A,t,{strict:!1}):ArrayBuffer.isView(e)||jk.isArrayBuffer(e)?L.converters.BufferSource(e,A,t):Rc.isFormDataLike(e)?L.converters.FormData(e,A,t,{strict:!1}):e instanceof URLSearchParams?L.converters.URLSearchParams(e,A,t):L.converters.DOMString(e,A,t)};L.converters.BodyInit=function(e,A,t){return e instanceof ReadableStream?L.converters.ReadableStream(e,A,t):e?.[Symbol.asyncIterator]?e:L.converters.XMLHttpRequestBodyInit(e,A,t)};L.converters.ResponseInit=L.dictionaryConverter([{key:"status",converter:L.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:L.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:L.converters.HeadersInit}]);UI.exports={isNetworkError:eF,makeNetworkError:Ws,makeResponse:Er,makeAppropriateNetworkError:AF,filterResponse:NI,Response:ht,cloneResponse:Nc,fromInnerResponse:un}});var xI=f((tx,TI)=>{"use strict";var{kConnected:MI,kSize:LI}=j(),Uc=class{constructor(A){this.value=A}deref(){return this.value[MI]===0&&this.value[LI]===0?void 0:this.value}},Mc=class{constructor(A){this.finalizer=A}register(A,t){A.on&&A.on("disconnect",()=>{A[MI]===0&&A[LI]===0&&this.finalizer(t)})}unregister(A){}};TI.exports=function(){return process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18")?(process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:Uc,FinalizationRegistry:Mc}):{WeakRef,FinalizationRegistry}}});var Qr=f((rx,XI)=>{"use strict";var{extractBody:tF,mixinBody:rF,cloneBody:nF,bodyUnusable:YI}=Wt(),{Headers:PI,fill:sF,HeadersList:zs,setHeadersGuard:Tc,getHeadersGuard:oF,setHeadersList:_I,getHeadersList:GI}=Ct(),{FinalizationRegistry:iF}=xI()(),_s=x(),JI=d("node:util"),{isValidHTTPToken:aF,sameOrigin:vI,environmentSettingsObject:Ps}=be(),{forbiddenMethodsSet:cF,corsSafeListedMethodsSet:gF,referrerPolicy:uF,requestRedirect:lF,requestMode:EF,requestCredentials:QF,requestCache:BF,requestDuplex:IF}=Tr(),{kEnumerableProperty:ae,normalizedMethodRecordsBase:CF,normalizedMethodRecords:hF}=_s,{kHeaders:Ue,kSignal:Zs,kState:X,kDispatcher:Lc}=LA(),{webidl:S}=ue(),{URLSerializer:dF}=de(),{kConstruct:Ks}=j(),fF=d("node:assert"),{getMaxListeners:HI,setMaxListeners:VI,getEventListeners:pF,defaultMaxListeners:qI}=d("node:events"),wF=Symbol("abortController"),ZI=new iF(({signal:e,abort:A})=>{e.removeEventListener("abort",A)}),Xs=new WeakMap;function OI(e){return A;function A(){let t=e.deref();if(t!==void 0){ZI.unregister(A),this.removeEventListener("abort",A),t.abort(this.reason);let r=Xs.get(t.signal);if(r!==void 0){if(r.size!==0){for(let n of r){let s=n.deref();s!==void 0&&s.abort(this.reason)}r.clear()}Xs.delete(t.signal)}}}}var WI=!1,WA=class e{constructor(A,t={}){if(S.util.markAsUncloneable(this),A===Ks)return;let r="Request constructor";S.argumentLengthCheck(arguments,1,r),A=S.converters.RequestInfo(A,r,"input"),t=S.converters.RequestInit(t,r,"init");let n=null,s=null,o=Ps.settingsObject.baseUrl,i=null;if(typeof A=="string"){this[Lc]=t.dispatcher;let B;try{B=new URL(A,o)}catch(h){throw new TypeError("Failed to parse URL from "+A,{cause:h})}if(B.username||B.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+A);n=js({urlList:[B]}),s="cors"}else this[Lc]=t.dispatcher||A[Lc],fF(A instanceof e),n=A[X],i=A[Zs];let a=Ps.settingsObject.origin,c="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&vI(n.window,a)&&(c=n.window),t.window!=null)throw new TypeError(`'window' option '${c}' must be null`);"window"in t&&(c="no-window"),n=js({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:Ps.settingsObject,window:c,priority:n.priority,origin:n.origin,referrer:n.referrer,referrerPolicy:n.referrerPolicy,mode:n.mode,credentials:n.credentials,cache:n.cache,redirect:n.redirect,integrity:n.integrity,keepalive:n.keepalive,reloadNavigation:n.reloadNavigation,historyNavigation:n.historyNavigation,urlList:[...n.urlList]});let l=Object.keys(t).length!==0;if(l&&(n.mode==="navigate"&&(n.mode="same-origin"),n.reloadNavigation=!1,n.historyNavigation=!1,n.origin="client",n.referrer="client",n.referrerPolicy="",n.url=n.urlList[n.urlList.length-1],n.urlList=[n.url]),t.referrer!==void 0){let B=t.referrer;if(B==="")n.referrer="no-referrer";else{let h;try{h=new URL(B,o)}catch(y){throw new TypeError(`Referrer "${B}" is not a valid URL.`,{cause:y})}h.protocol==="about:"&&h.hostname==="client"||a&&!vI(h,Ps.settingsObject.baseUrl)?n.referrer="client":n.referrer=h}}t.referrerPolicy!==void 0&&(n.referrerPolicy=t.referrerPolicy);let u;if(t.mode!==void 0?u=t.mode:u=s,u==="navigate")throw S.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(u!=null&&(n.mode=u),t.credentials!==void 0&&(n.credentials=t.credentials),t.cache!==void 0&&(n.cache=t.cache),n.cache==="only-if-cached"&&n.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(n.redirect=t.redirect),t.integrity!=null&&(n.integrity=String(t.integrity)),t.keepalive!==void 0&&(n.keepalive=!!t.keepalive),t.method!==void 0){let B=t.method,h=hF[B];if(h!==void 0)n.method=h;else{if(!aF(B))throw new TypeError(`'${B}' is not a valid HTTP method.`);let y=B.toUpperCase();if(cF.has(y))throw new TypeError(`'${B}' HTTP method is unsupported.`);B=CF[y]??B,n.method=B}!WI&&n.method==="patch"&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),WI=!0)}t.signal!==void 0&&(i=t.signal),this[X]=n;let g=new AbortController;if(this[Zs]=g.signal,i!=null){if(!i||typeof i.aborted!="boolean"||typeof i.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(i.aborted)g.abort(i.reason);else{this[wF]=g;let B=new WeakRef(g),h=OI(B);try{(typeof HI=="function"&&HI(i)===qI||pF(i,"abort").length>=qI)&&VI(1500,i)}catch{}_s.addAbortListener(i,h),ZI.register(g,{signal:i,abort:h},h)}}if(this[Ue]=new PI(Ks),_I(this[Ue],n.headersList),Tc(this[Ue],"request"),u==="no-cors"){if(!gF.has(n.method))throw new TypeError(`'${n.method} is unsupported in no-cors mode.`);Tc(this[Ue],"request-no-cors")}if(l){let B=GI(this[Ue]),h=t.headers!==void 0?t.headers:new zs(B);if(B.clear(),h instanceof zs){for(let{name:y,value:m}of h.rawValues())B.append(y,m,!1);B.cookies=h.cookies}else sF(this[Ue],h)}let E=A instanceof e?A[X].body:null;if((t.body!=null||E!=null)&&(n.method==="GET"||n.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let Q=null;if(t.body!=null){let[B,h]=tF(t.body,n.keepalive);Q=B,h&&!GI(this[Ue]).contains("content-type",!0)&&this[Ue].append("content-type",h)}let I=Q??E;if(I!=null&&I.source==null){if(Q!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(n.mode!=="same-origin"&&n.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');n.useCORSPreflightFlag=!0}let C=I;if(Q==null&&E!=null){if(YI(A))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let B=new TransformStream;E.stream.pipeThrough(B),C={source:E.source,length:E.length,stream:B.readable}}this[X].body=C}get method(){return S.brandCheck(this,e),this[X].method}get url(){return S.brandCheck(this,e),dF(this[X].url)}get headers(){return S.brandCheck(this,e),this[Ue]}get destination(){return S.brandCheck(this,e),this[X].destination}get referrer(){return S.brandCheck(this,e),this[X].referrer==="no-referrer"?"":this[X].referrer==="client"?"about:client":this[X].referrer.toString()}get referrerPolicy(){return S.brandCheck(this,e),this[X].referrerPolicy}get mode(){return S.brandCheck(this,e),this[X].mode}get credentials(){return this[X].credentials}get cache(){return S.brandCheck(this,e),this[X].cache}get redirect(){return S.brandCheck(this,e),this[X].redirect}get integrity(){return S.brandCheck(this,e),this[X].integrity}get keepalive(){return S.brandCheck(this,e),this[X].keepalive}get isReloadNavigation(){return S.brandCheck(this,e),this[X].reloadNavigation}get isHistoryNavigation(){return S.brandCheck(this,e),this[X].historyNavigation}get signal(){return S.brandCheck(this,e),this[Zs]}get body(){return S.brandCheck(this,e),this[X].body?this[X].body.stream:null}get bodyUsed(){return S.brandCheck(this,e),!!this[X].body&&_s.isDisturbed(this[X].body.stream)}get duplex(){return S.brandCheck(this,e),"half"}clone(){if(S.brandCheck(this,e),YI(this))throw new TypeError("unusable");let A=zI(this[X]),t=new AbortController;if(this.signal.aborted)t.abort(this.signal.reason);else{let r=Xs.get(this.signal);r===void 0&&(r=new Set,Xs.set(this.signal,r));let n=new WeakRef(t);r.add(n),_s.addAbortListener(t.signal,OI(n))}return KI(A,t.signal,oF(this[Ue]))}[JI.inspect.custom](A,t){t.depth===null&&(t.depth=2),t.colors??=!0;let r={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${JI.formatWithOptions(t,r)}`}};rF(WA);function js(e){return{method:e.method??"GET",localURLsOnly:e.localURLsOnly??!1,unsafeRequest:e.unsafeRequest??!1,body:e.body??null,client:e.client??null,reservedClient:e.reservedClient??null,replacesClientId:e.replacesClientId??"",window:e.window??"client",keepalive:e.keepalive??!1,serviceWorkers:e.serviceWorkers??"all",initiator:e.initiator??"",destination:e.destination??"",priority:e.priority??null,origin:e.origin??"client",policyContainer:e.policyContainer??"client",referrer:e.referrer??"client",referrerPolicy:e.referrerPolicy??"",mode:e.mode??"no-cors",useCORSPreflightFlag:e.useCORSPreflightFlag??!1,credentials:e.credentials??"same-origin",useCredentials:e.useCredentials??!1,cache:e.cache??"default",redirect:e.redirect??"follow",integrity:e.integrity??"",cryptoGraphicsNonceMetadata:e.cryptoGraphicsNonceMetadata??"",parserMetadata:e.parserMetadata??"",reloadNavigation:e.reloadNavigation??!1,historyNavigation:e.historyNavigation??!1,userActivation:e.userActivation??!1,taintedOrigin:e.taintedOrigin??!1,redirectCount:e.redirectCount??0,responseTainting:e.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:e.preventNoCacheCacheControlHeaderModification??!1,done:e.done??!1,timingAllowFailed:e.timingAllowFailed??!1,urlList:e.urlList,url:e.urlList[0],headersList:e.headersList?new zs(e.headersList):new zs}}function zI(e){let A=js({...e,body:null});return e.body!=null&&(A.body=nF(A,e.body)),A}function KI(e,A,t){let r=new WA(Ks);return r[X]=e,r[Zs]=A,r[Ue]=new PI(Ks),_I(r[Ue],e.headersList),Tc(r[Ue],t),r}Object.defineProperties(WA.prototype,{method:ae,url:ae,headers:ae,redirect:ae,clone:ae,signal:ae,duplex:ae,destination:ae,body:ae,bodyUsed:ae,isHistoryNavigation:ae,isReloadNavigation:ae,keepalive:ae,integrity:ae,cache:ae,credentials:ae,attribute:ae,referrerPolicy:ae,referrer:ae,mode:ae,[Symbol.toStringTag]:{value:"Request",configurable:!0}});S.converters.Request=S.interfaceConverter(WA);S.converters.RequestInfo=function(e,A,t){return typeof e=="string"?S.converters.USVString(e,A,t):e instanceof WA?S.converters.Request(e,A,t):S.converters.USVString(e,A,t)};S.converters.AbortSignal=S.interfaceConverter(AbortSignal);S.converters.RequestInit=S.dictionaryConverter([{key:"method",converter:S.converters.ByteString},{key:"headers",converter:S.converters.HeadersInit},{key:"body",converter:S.nullableConverter(S.converters.BodyInit)},{key:"referrer",converter:S.converters.USVString},{key:"referrerPolicy",converter:S.converters.DOMString,allowedValues:uF},{key:"mode",converter:S.converters.DOMString,allowedValues:EF},{key:"credentials",converter:S.converters.DOMString,allowedValues:QF},{key:"cache",converter:S.converters.DOMString,allowedValues:BF},{key:"redirect",converter:S.converters.DOMString,allowedValues:lF},{key:"integrity",converter:S.converters.DOMString},{key:"keepalive",converter:S.converters.boolean},{key:"signal",converter:S.nullableConverter(e=>S.converters.AbortSignal(e,"RequestInit","signal",{strict:!1}))},{key:"window",converter:S.converters.any},{key:"duplex",converter:S.converters.DOMString,allowedValues:IF},{key:"dispatcher",converter:S.converters.any}]);XI.exports={Request:WA,makeRequest:js,fromInnerRequest:KI,cloneRequest:zI}});var Qn=f((nx,lC)=>{"use strict";var{makeNetworkError:O,makeAppropriateNetworkError:$s,filterResponse:xc,makeResponse:eo,fromInnerResponse:mF}=ln(),{HeadersList:jI}=Ct(),{Request:yF,cloneRequest:DF}=Qr(),PA=d("node:zlib"),{bytesMatch:bF,makePolicyContainer:kF,clonePolicyContainer:FF,requestBadPort:RF,TAOCheck:SF,appendRequestOriginHeader:NF,responseLocationURL:UF,requestCurrentURL:gA,setRequestReferrerPolicyOnRedirect:MF,tryUpgradeRequestToAPotentiallyTrustworthyURL:LF,createOpaqueTimingInfo:Hc,appendFetchMetadata:TF,corsCheck:xF,crossOriginResourcePolicyCheck:YF,determineRequestsReferrer:GF,coarsenedSharedCurrentTime:En,createDeferredPromise:JF,isBlobLike:vF,sameOrigin:vc,isCancelled:dt,isAborted:$I,isErrorLike:HF,fullyReadBody:VF,readableStreamClose:qF,isomorphicEncode:Ao,urlIsLocal:OF,urlIsHttpHttpsScheme:Vc,urlHasHttpsScheme:WF,clampAndCoarsenConnectionTimingInfo:PF,simpleRangeHeaderValue:_F,buildContentRange:ZF,createInflate:zF,extractMimeType:KF}=be(),{kState:rC,kDispatcher:XF}=LA(),ft=d("node:assert"),{safelyExtractBody:qc,extractBody:eC}=Wt(),{redirectStatusSet:nC,nullBodyStatus:sC,safeMethodsSet:jF,requestBodyHeader:$F,subresourceSet:eR}=Tr(),AR=d("node:events"),{Readable:tR,pipeline:rR,finished:nR}=d("node:stream"),{addAbortListener:sR,isErrored:oR,isReadable:to,bufferToLowerCasedHeaderName:AC}=x(),{dataURLProcessor:iR,serializeAMimeType:aR,minimizeSupportedMimeType:cR}=de(),{getGlobalDispatcher:gR}=Js(),{webidl:uR}=ue(),{STATUS_CODES:lR}=d("node:http"),ER=["GET","HEAD"],QR=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",Yc,ro=class extends AR{constructor(A){super(),this.dispatcher=A,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(A){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(A),this.emit("terminated",A))}abort(A){this.state==="ongoing"&&(this.state="aborted",A||(A=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=A,this.connection?.destroy(A),this.emit("terminated",A))}};function BR(e){oC(e,"fetch")}function IR(e,A=void 0){uR.argumentLengthCheck(arguments,1,"globalThis.fetch");let t=JF(),r;try{r=new yF(e,A)}catch(l){return t.reject(l),t.promise}let n=r[rC];if(r.signal.aborted)return Gc(t,n,null,r.signal.reason),t.promise;n.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(n.serviceWorkers="none");let o=null,i=!1,a=null;return sR(r.signal,()=>{i=!0,ft(a!=null),a.abort(r.signal.reason);let l=o?.deref();Gc(t,n,l,r.signal.reason)}),a=aC({request:n,processResponseEndOfBody:BR,processResponse:l=>{if(!i){if(l.aborted){Gc(t,n,o,a.serializedAbortReason);return}if(l.type==="error"){t.reject(new TypeError("fetch failed",{cause:l.error}));return}o=new WeakRef(mF(l,"immutable")),t.resolve(o.deref()),t=null}},dispatcher:r[XF]}),t.promise}function oC(e,A="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let t=e.urlList[0],r=e.timingInfo,n=e.cacheState;Vc(t)&&r!==null&&(e.timingAllowPassed||(r=Hc({startTime:r.startTime}),n=""),r.endTime=En(),e.timingInfo=r,iC(r,t.href,A,globalThis,n))}var iC=performance.markResourceTiming;function Gc(e,A,t,r){if(e&&e.reject(r),A.body!=null&&to(A.body?.stream)&&A.body.stream.cancel(r).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s}),t==null)return;let n=t[rC];n.body!=null&&to(n.body?.stream)&&n.body.stream.cancel(r).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s})}function aC({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:r,processResponseEndOfBody:n,processResponseConsumeBody:s,useParallelQueue:o=!1,dispatcher:i=gR()}){ft(i);let a=null,c=!1;e.client!=null&&(a=e.client.globalObject,c=e.client.crossOriginIsolatedCapability);let l=En(c),u=Hc({startTime:l}),g={controller:new ro(i),request:e,timingInfo:u,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:r,processResponseConsumeBody:s,processResponseEndOfBody:n,taskDestination:a,crossOriginIsolatedCapability:c};return ft(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=FF(e.client.policyContainer):e.policyContainer=kF()),e.headersList.contains("accept",!0)||e.headersList.append("accept","*/*",!0),e.headersList.contains("accept-language",!0)||e.headersList.append("accept-language","*",!0),e.priority,eR.has(e.destination),cC(g).catch(E=>{g.controller.terminate(E)}),g.controller}async function cC(e,A=!1){let t=e.request,r=null;if(t.localURLsOnly&&!OF(gA(t))&&(r=O("local URLs only")),LF(t),RF(t)==="blocked"&&(r=O("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=GF(t)),r===null&&(r=await(async()=>{let s=gA(t);return vc(s,t.url)&&t.responseTainting==="basic"||s.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await tC(e)):t.mode==="same-origin"?O('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?O('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await tC(e)):Vc(gA(t))?(t.responseTainting="cors",await gC(e)):O("URL scheme must be a HTTP(S) scheme")})()),A)return r;r.status!==0&&!r.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?r=xc(r,"basic"):t.responseTainting==="cors"?r=xc(r,"cors"):t.responseTainting==="opaque"?r=xc(r,"opaque"):ft(!1));let n=r.status===0?r:r.internalResponse;if(n.urlList.length===0&&n.urlList.push(...t.urlList),t.timingAllowFailed||(r.timingAllowPassed=!0),r.type==="opaque"&&n.status===206&&n.rangeRequested&&!t.headers.contains("range",!0)&&(r=n=O()),r.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||sC.includes(n.status))&&(n.body=null,e.controller.dump=!0),t.integrity){let s=i=>Jc(e,O(i));if(t.responseTainting==="opaque"||r.body==null){s(r.error);return}let o=i=>{if(!bF(i,t.integrity)){s("integrity mismatch");return}r.body=qc(i)[0],Jc(e,r)};await VF(r.body,o,s)}else Jc(e,r)}function tC(e){if(dt(e)&&e.request.redirectCount===0)return Promise.resolve($s(e));let{request:A}=e,{protocol:t}=gA(A);switch(t){case"about:":return Promise.resolve(O("about scheme is not supported"));case"blob:":{Yc||(Yc=d("node:buffer").resolveObjectURL);let r=gA(A);if(r.search.length!==0)return Promise.resolve(O("NetworkError when attempting to fetch resource."));let n=Yc(r.toString());if(A.method!=="GET"||!vF(n))return Promise.resolve(O("invalid method"));let s=eo(),o=n.size,i=Ao(`${o}`),a=n.type;if(A.headersList.contains("range",!0)){s.rangeRequested=!0;let c=A.headersList.get("range",!0),l=_F(c,!0);if(l==="failure")return Promise.resolve(O("failed to fetch the data URL"));let{rangeStartValue:u,rangeEndValue:g}=l;if(u===null)u=o-g,g=u+g-1;else{if(u>=o)return Promise.resolve(O("Range start is greater than the blob's size."));(g===null||g>=o)&&(g=o-1)}let E=n.slice(u,g,a),Q=eC(E);s.body=Q[0];let I=Ao(`${E.size}`),C=ZF(u,g,o);s.status=206,s.statusText="Partial Content",s.headersList.set("content-length",I,!0),s.headersList.set("content-type",a,!0),s.headersList.set("content-range",C,!0)}else{let c=eC(n);s.statusText="OK",s.body=c[0],s.headersList.set("content-length",i,!0),s.headersList.set("content-type",a,!0)}return Promise.resolve(s)}case"data:":{let r=gA(A),n=iR(r);if(n==="failure")return Promise.resolve(O("failed to fetch the data URL"));let s=aR(n.mimeType);return Promise.resolve(eo({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:s}]],body:qc(n.body)[0]}))}case"file:":return Promise.resolve(O("not implemented... yet..."));case"http:":case"https:":return gC(e).catch(r=>O(r));default:return Promise.resolve(O("unknown scheme"))}}function CR(e,A){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(A))}function Jc(e,A){let t=e.timingInfo,r=()=>{let s=Date.now();e.request.destination==="document"&&(e.controller.fullTimingInfo=t),e.controller.reportTimingSteps=()=>{if(e.request.url.protocol!=="https:")return;t.endTime=s;let i=A.cacheState,a=A.bodyInfo;A.timingAllowPassed||(t=Hc(t),i="");let c=0;if(e.request.mode!=="navigator"||!A.hasCrossOriginRedirects){c=A.status;let l=KF(A.headersList);l!=="failure"&&(a.contentType=cR(l))}e.request.initiatorType!=null&&iC(t,e.request.url.href,e.request.initiatorType,globalThis,i,a,c)};let o=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(A)),e.request.initiatorType!=null&&e.controller.reportTimingSteps()};queueMicrotask(()=>o())};e.processResponse!=null&&queueMicrotask(()=>{e.processResponse(A),e.processResponse=null});let n=A.type==="error"?A:A.internalResponse??A;n.body==null?r():nR(n.body.stream,()=>{r()})}async function gC(e){let A=e.request,t=null,r=null,n=e.timingInfo;if(A.serviceWorkers,t===null){if(A.redirect==="follow"&&(A.serviceWorkers="none"),r=t=await uC(e),A.responseTainting==="cors"&&xF(A,t)==="failure")return O("cors failure");SF(A,t)==="failure"&&(A.timingAllowFailed=!0)}return(A.responseTainting==="opaque"||t.type==="opaque")&&YF(A.origin,A.client,A.destination,r)==="blocked"?O("blocked"):(nC.has(r.status)&&(A.redirect!=="manual"&&e.controller.connection.destroy(void 0,!1),A.redirect==="error"?t=O("unexpected redirect"):A.redirect==="manual"?t=r:A.redirect==="follow"?t=await hR(e,t):ft(!1)),t.timingInfo=n,t)}function hR(e,A){let t=e.request,r=A.internalResponse?A.internalResponse:A,n;try{if(n=UF(r,gA(t).hash),n==null)return A}catch(o){return Promise.resolve(O(o))}if(!Vc(n))return Promise.resolve(O("URL scheme must be a HTTP(S) scheme"));if(t.redirectCount===20)return Promise.resolve(O("redirect count exceeded"));if(t.redirectCount+=1,t.mode==="cors"&&(n.username||n.password)&&!vc(t,n))return Promise.resolve(O('cross origin not allowed for request mode "cors"'));if(t.responseTainting==="cors"&&(n.username||n.password))return Promise.resolve(O('URL cannot contain credentials for request mode "cors"'));if(r.status!==303&&t.body!=null&&t.body.source==null)return Promise.resolve(O());if([301,302].includes(r.status)&&t.method==="POST"||r.status===303&&!ER.includes(t.method)){t.method="GET",t.body=null;for(let o of $F)t.headersList.delete(o)}vc(gA(t),n)||(t.headersList.delete("authorization",!0),t.headersList.delete("proxy-authorization",!0),t.headersList.delete("cookie",!0),t.headersList.delete("host",!0)),t.body!=null&&(ft(t.body.source!=null),t.body=qc(t.body.source)[0]);let s=e.timingInfo;return s.redirectEndTime=s.postRedirectStartTime=En(e.crossOriginIsolatedCapability),s.redirectStartTime===0&&(s.redirectStartTime=s.startTime),t.urlList.push(n),MF(t,r),cC(e,!0)}async function uC(e,A=!1,t=!1){let r=e.request,n=null,s=null,o=null,i=null,a=!1;r.window==="no-window"&&r.redirect==="error"?(n=e,s=r):(s=DF(r),n={...e},n.request=s);let c=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic",l=s.body?s.body.length:null,u=null;if(s.body==null&&["POST","PUT"].includes(s.method)&&(u="0"),l!=null&&(u=Ao(`${l}`)),u!=null&&s.headersList.append("content-length",u,!0),l!=null&&s.keepalive,s.referrer instanceof URL&&s.headersList.append("referer",Ao(s.referrer.href),!0),NF(s),TF(s),s.headersList.contains("user-agent",!0)||s.headersList.append("user-agent",QR),s.cache==="default"&&(s.headersList.contains("if-modified-since",!0)||s.headersList.contains("if-none-match",!0)||s.headersList.contains("if-unmodified-since",!0)||s.headersList.contains("if-match",!0)||s.headersList.contains("if-range",!0))&&(s.cache="no-store"),s.cache==="no-cache"&&!s.preventNoCacheCacheControlHeaderModification&&!s.headersList.contains("cache-control",!0)&&s.headersList.append("cache-control","max-age=0",!0),(s.cache==="no-store"||s.cache==="reload")&&(s.headersList.contains("pragma",!0)||s.headersList.append("pragma","no-cache",!0),s.headersList.contains("cache-control",!0)||s.headersList.append("cache-control","no-cache",!0)),s.headersList.contains("range",!0)&&s.headersList.append("accept-encoding","identity",!0),s.headersList.contains("accept-encoding",!0)||(WF(gA(s))?s.headersList.append("accept-encoding","br, gzip, deflate",!0):s.headersList.append("accept-encoding","gzip, deflate",!0)),s.headersList.delete("host",!0),i==null&&(s.cache="no-store"),s.cache!=="no-store"&&s.cache,o==null){if(s.cache==="only-if-cached")return O("only if cached");let g=await dR(n,c,t);!jF.has(s.method)&&g.status>=200&&g.status<=399,a&&g.status,o==null&&(o=g)}if(o.urlList=[...s.urlList],s.headersList.contains("range",!0)&&(o.rangeRequested=!0),o.requestIncludesCredentials=c,o.status===407)return r.window==="no-window"?O():dt(e)?$s(e):O("proxy authentication required");if(o.status===421&&!t&&(r.body==null||r.body.source!=null)){if(dt(e))return $s(e);e.controller.connection.destroy(),o=await uC(e,A,!0)}return o}async function dR(e,A=!1,t=!1){ft(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(Q,I=!0){this.destroyed||(this.destroyed=!0,I&&this.abort?.(Q??new DOMException("The operation was aborted.","AbortError")))}};let r=e.request,n=null,s=e.timingInfo;null==null&&(r.cache="no-store");let i=t?"yes":"no";r.mode;let a=null;if(r.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(r.body!=null){let Q=async function*(B){dt(e)||(yield B,e.processRequestBodyChunkLength?.(B.byteLength))},I=()=>{dt(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},C=B=>{dt(e)||(B.name==="AbortError"?e.controller.abort():e.controller.terminate(B))};a=(async function*(){try{for await(let B of r.body.stream)yield*Q(B);I()}catch(B){C(B)}})()}try{let{body:Q,status:I,statusText:C,headersList:B,socket:h}=await E({body:a});if(h)n=eo({status:I,statusText:C,headersList:B,socket:h});else{let y=Q[Symbol.asyncIterator]();e.controller.next=()=>y.next(),n=eo({status:I,statusText:C,headersList:B})}}catch(Q){return Q.name==="AbortError"?(e.controller.connection.destroy(),$s(e,Q)):O(Q)}let c=async()=>{await e.controller.resume()},l=Q=>{dt(e)||e.controller.abort(Q)},u=new ReadableStream({async start(Q){e.controller.controller=Q},async pull(Q){await c(Q)},async cancel(Q){await l(Q)},type:"bytes"});n.body={stream:u,source:null,length:null},e.controller.onAborted=g,e.controller.on("terminated",g),e.controller.resume=async()=>{for(;;){let Q,I;try{let{done:B,value:h}=await e.controller.next();if($I(e))break;Q=B?void 0:h}catch(B){e.controller.ended&&!s.encodedBodySize?Q=void 0:(Q=B,I=!0)}if(Q===void 0){qF(e.controller.controller),CR(e,n);return}if(s.decodedBodySize+=Q?.byteLength??0,I){e.controller.terminate(Q);return}let C=new Uint8Array(Q);if(C.byteLength&&e.controller.controller.enqueue(C),oR(u)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function g(Q){$I(e)?(n.aborted=!0,to(u)&&e.controller.controller.error(e.controller.serializedAbortReason)):to(u)&&e.controller.controller.error(new TypeError("terminated",{cause:HF(Q)?Q:void 0})),e.controller.connection.destroy()}return n;function E({body:Q}){let I=gA(r),C=e.controller.dispatcher;return new Promise((B,h)=>C.dispatch({path:I.pathname+I.search,origin:I.origin,method:r.method,body:C.isMockActive?r.body&&(r.body.source||r.body.stream):Q,headers:r.headersList.entries,maxRedirections:0,upgrade:r.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(y){let{connection:m}=e.controller;s.finalConnectionTimingInfo=PF(void 0,s.postRedirectStartTime,e.crossOriginIsolatedCapability),m.destroyed?y(new DOMException("The operation was aborted.","AbortError")):(e.controller.on("terminated",y),this.abort=m.abort=y),s.finalNetworkRequestStartTime=En(e.crossOriginIsolatedCapability)},onResponseStarted(){s.finalNetworkResponseStartTime=En(e.crossOriginIsolatedCapability)},onHeaders(y,m,T,_){if(y<200)return;let Z="",M=new jI;for(let se=0;se<m.length;se+=2)M.append(AC(m[se]),m[se+1].toString("latin1"),!0);Z=M.get("location",!0),this.body=new tR({read:T});let V=[],De=Z&&r.redirect==="follow"&&nC.has(y);if(r.method!=="HEAD"&&r.method!=="CONNECT"&&!sC.includes(y)&&!De){let se=M.get("content-encoding",!0),xe=se?se.toLowerCase().split(","):[],QA=5;if(xe.length>QA)return h(new Error(`too many content-encodings in response: ${xe.length}, maximum allowed is ${QA}`)),!0;for(let Rt=xe.length-1;Rt>=0;--Rt){let St=xe[Rt].trim();if(St==="x-gzip"||St==="gzip")V.push(PA.createGunzip({flush:PA.constants.Z_SYNC_FLUSH,finishFlush:PA.constants.Z_SYNC_FLUSH}));else if(St==="deflate")V.push(zF({flush:PA.constants.Z_SYNC_FLUSH,finishFlush:PA.constants.Z_SYNC_FLUSH}));else if(St==="br")V.push(PA.createBrotliDecompress({flush:PA.constants.BROTLI_OPERATION_FLUSH,finishFlush:PA.constants.BROTLI_OPERATION_FLUSH}));else{V.length=0;break}}}let Be=this.onError.bind(this);return B({status:y,statusText:_,headersList:M,body:V.length?rR(this.body,...V,se=>{se&&this.onError(se)}).on("error",Be):this.body.on("error",Be)}),!0},onData(y){if(e.controller.dump)return;let m=y;return s.encodedBodySize+=m.byteLength,this.body.push(m)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.onAborted&&e.controller.off("terminated",e.controller.onAborted),e.controller.ended=!0,this.body.push(null)},onError(y){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(y),e.controller.terminate(y),h(y)},onUpgrade(y,m,T){if(y!==101)return;let _=new jI;for(let Z=0;Z<m.length;Z+=2)_.append(AC(m[Z]),m[Z+1].toString("latin1"),!0);return B({status:y,statusText:lR[y],headersList:_,socket:T}),!0}}))}}lC.exports={fetch:IR,Fetch:ro,fetching:aC,finalizeAndReportTiming:oC}});var Oc=f((sx,EC)=>{"use strict";EC.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var BC=f((ox,QC)=>{"use strict";var{webidl:Me}=ue(),no=Symbol("ProgressEvent state"),Wc=class e extends Event{constructor(A,t={}){A=Me.converters.DOMString(A,"ProgressEvent constructor","type"),t=Me.converters.ProgressEventInit(t??{}),super(A,t),this[no]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return Me.brandCheck(this,e),this[no].lengthComputable}get loaded(){return Me.brandCheck(this,e),this[no].loaded}get total(){return Me.brandCheck(this,e),this[no].total}};Me.converters.ProgressEventInit=Me.dictionaryConverter([{key:"lengthComputable",converter:Me.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:Me.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:Me.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:Me.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:Me.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:Me.converters.boolean,defaultValue:()=>!1}]);QC.exports={ProgressEvent:Wc}});var CC=f((ix,IC)=>{"use strict";function fR(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}IC.exports={getEncoding:fR}});var DC=f((ax,yC)=>{"use strict";var{kState:Br,kError:Pc,kResult:hC,kAborted:Bn,kLastProgressEventFired:_c}=Oc(),{ProgressEvent:pR}=BC(),{getEncoding:dC}=CC(),{serializeAMimeType:wR,parseMIMEType:fC}=de(),{types:mR}=d("node:util"),{StringDecoder:pC}=d("string_decoder"),{btoa:wC}=d("node:buffer"),yR={enumerable:!0,writable:!1,configurable:!1};function DR(e,A,t,r){if(e[Br]==="loading")throw new DOMException("Invalid state","InvalidStateError");e[Br]="loading",e[hC]=null,e[Pc]=null;let s=A.stream().getReader(),o=[],i=s.read(),a=!0;(async()=>{for(;!e[Bn];)try{let{done:c,value:l}=await i;if(a&&!e[Bn]&&queueMicrotask(()=>{_A("loadstart",e)}),a=!1,!c&&mR.isUint8Array(l))o.push(l),(e[_c]===void 0||Date.now()-e[_c]>=50)&&!e[Bn]&&(e[_c]=Date.now(),queueMicrotask(()=>{_A("progress",e)})),i=s.read();else if(c){queueMicrotask(()=>{e[Br]="done";try{let u=bR(o,t,A.type,r);if(e[Bn])return;e[hC]=u,_A("load",e)}catch(u){e[Pc]=u,_A("error",e)}e[Br]!=="loading"&&_A("loadend",e)});break}}catch(c){if(e[Bn])return;queueMicrotask(()=>{e[Br]="done",e[Pc]=c,_A("error",e),e[Br]!=="loading"&&_A("loadend",e)});break}})()}function _A(e,A){let t=new pR(e,{bubbles:!1,cancelable:!1});A.dispatchEvent(t)}function bR(e,A,t,r){switch(A){case"DataURL":{let n="data:",s=fC(t||"application/octet-stream");s!=="failure"&&(n+=wR(s)),n+=";base64,";let o=new pC("latin1");for(let i of e)n+=wC(o.write(i));return n+=wC(o.end()),n}case"Text":{let n="failure";if(r&&(n=dC(r)),n==="failure"&&t){let s=fC(t);s!=="failure"&&(n=dC(s.parameters.get("charset")))}return n==="failure"&&(n="UTF-8"),kR(e,n)}case"ArrayBuffer":return mC(e).buffer;case"BinaryString":{let n="",s=new pC("latin1");for(let o of e)n+=s.write(o);return n+=s.end(),n}}}function kR(e,A){let t=mC(e),r=FR(t),n=0;r!==null&&(A=r,n=r==="UTF-8"?3:2);let s=t.slice(n);return new TextDecoder(A).decode(s)}function FR(e){let[A,t,r]=e;return A===239&&t===187&&r===191?"UTF-8":A===254&&t===255?"UTF-16BE":A===255&&t===254?"UTF-16LE":null}function mC(e){let A=e.reduce((r,n)=>r+n.byteLength,0),t=0;return e.reduce((r,n)=>(r.set(n,t),t+=n.byteLength,r),new Uint8Array(A))}yC.exports={staticPropertyDescriptors:yR,readOperation:DR,fireAProgressEvent:_A}});var RC=f((cx,FC)=>{"use strict";var{staticPropertyDescriptors:Ir,readOperation:so,fireAProgressEvent:bC}=DC(),{kState:pt,kError:kC,kResult:oo,kEvents:H,kAborted:RR}=Oc(),{webidl:P}=ue(),{kEnumerableProperty:we}=x(),Xe=class e extends EventTarget{constructor(){super(),this[pt]="empty",this[oo]=null,this[kC]=null,this[H]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer"),A=P.converters.Blob(A,{strict:!1}),so(this,A,"ArrayBuffer")}readAsBinaryString(A){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),A=P.converters.Blob(A,{strict:!1}),so(this,A,"BinaryString")}readAsText(A,t=void 0){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,"FileReader.readAsText"),A=P.converters.Blob(A,{strict:!1}),t!==void 0&&(t=P.converters.DOMString(t,"FileReader.readAsText","encoding")),so(this,A,"Text",t)}readAsDataURL(A){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),A=P.converters.Blob(A,{strict:!1}),so(this,A,"DataURL")}abort(){if(this[pt]==="empty"||this[pt]==="done"){this[oo]=null;return}this[pt]==="loading"&&(this[pt]="done",this[oo]=null),this[RR]=!0,bC("abort",this),this[pt]!=="loading"&&bC("loadend",this)}get readyState(){switch(P.brandCheck(this,e),this[pt]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return P.brandCheck(this,e),this[oo]}get error(){return P.brandCheck(this,e),this[kC]}get onloadend(){return P.brandCheck(this,e),this[H].loadend}set onloadend(A){P.brandCheck(this,e),this[H].loadend&&this.removeEventListener("loadend",this[H].loadend),typeof A=="function"?(this[H].loadend=A,this.addEventListener("loadend",A)):this[H].loadend=null}get onerror(){return P.brandCheck(this,e),this[H].error}set onerror(A){P.brandCheck(this,e),this[H].error&&this.removeEventListener("error",this[H].error),typeof A=="function"?(this[H].error=A,this.addEventListener("error",A)):this[H].error=null}get onloadstart(){return P.brandCheck(this,e),this[H].loadstart}set onloadstart(A){P.brandCheck(this,e),this[H].loadstart&&this.removeEventListener("loadstart",this[H].loadstart),typeof A=="function"?(this[H].loadstart=A,this.addEventListener("loadstart",A)):this[H].loadstart=null}get onprogress(){return P.brandCheck(this,e),this[H].progress}set onprogress(A){P.brandCheck(this,e),this[H].progress&&this.removeEventListener("progress",this[H].progress),typeof A=="function"?(this[H].progress=A,this.addEventListener("progress",A)):this[H].progress=null}get onload(){return P.brandCheck(this,e),this[H].load}set onload(A){P.brandCheck(this,e),this[H].load&&this.removeEventListener("load",this[H].load),typeof A=="function"?(this[H].load=A,this.addEventListener("load",A)):this[H].load=null}get onabort(){return P.brandCheck(this,e),this[H].abort}set onabort(A){P.brandCheck(this,e),this[H].abort&&this.removeEventListener("abort",this[H].abort),typeof A=="function"?(this[H].abort=A,this.addEventListener("abort",A)):this[H].abort=null}};Xe.EMPTY=Xe.prototype.EMPTY=0;Xe.LOADING=Xe.prototype.LOADING=1;Xe.DONE=Xe.prototype.DONE=2;Object.defineProperties(Xe.prototype,{EMPTY:Ir,LOADING:Ir,DONE:Ir,readAsArrayBuffer:we,readAsBinaryString:we,readAsText:we,readAsDataURL:we,abort:we,readyState:we,result:we,error:we,onloadstart:we,onprogress:we,onload:we,onabort:we,onerror:we,onloadend:we,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(Xe,{EMPTY:Ir,LOADING:Ir,DONE:Ir});FC.exports={FileReader:Xe}});var io=f((gx,SC)=>{"use strict";SC.exports={kConstruct:j().kConstruct}});var MC=f((ux,UC)=>{"use strict";var SR=d("node:assert"),{URLSerializer:NC}=de(),{isValidHeaderName:NR}=be();function UR(e,A,t=!1){let r=NC(e,t),n=NC(A,t);return r===n}function MR(e){SR(e!==null);let A=[];for(let t of e.split(","))t=t.trim(),NR(t)&&A.push(t);return A}UC.exports={urlEquals:UR,getFieldValues:MR}});var xC=f((lx,TC)=>{"use strict";var{kConstruct:LR}=io(),{urlEquals:TR,getFieldValues:Zc}=MC(),{kEnumerableProperty:wt,isDisturbed:xR}=x(),{webidl:b}=ue(),{Response:YR,cloneResponse:GR,fromInnerResponse:JR}=ln(),{Request:bA,fromInnerRequest:vR}=Qr(),{kState:je}=LA(),{fetching:HR}=Qn(),{urlIsHttpHttpsScheme:ao,createDeferredPromise:Cr,readAllBytes:VR}=be(),zc=d("node:assert"),co=class e{#e;constructor(){arguments[0]!==LR&&b.illegalConstructor(),b.util.markAsUncloneable(this),this.#e=arguments[1]}async match(A,t={}){b.brandCheck(this,e);let r="Cache.match";b.argumentLengthCheck(arguments,1,r),A=b.converters.RequestInfo(A,r,"request"),t=b.converters.CacheQueryOptions(t,r,"options");let n=this.#n(A,t,1);if(n.length!==0)return n[0]}async matchAll(A=void 0,t={}){b.brandCheck(this,e);let r="Cache.matchAll";return A!==void 0&&(A=b.converters.RequestInfo(A,r,"request")),t=b.converters.CacheQueryOptions(t,r,"options"),this.#n(A,t)}async add(A){b.brandCheck(this,e);let t="Cache.add";b.argumentLengthCheck(arguments,1,t),A=b.converters.RequestInfo(A,t,"request");let r=[A];return await this.addAll(r)}async addAll(A){b.brandCheck(this,e);let t="Cache.addAll";b.argumentLengthCheck(arguments,1,t);let r=[],n=[];for(let g of A){if(g===void 0)throw b.errors.conversionFailed({prefix:t,argument:"Argument 1",types:["undefined is not allowed"]});if(g=b.converters.RequestInfo(g),typeof g=="string")continue;let E=g[je];if(!ao(E.url)||E.method!=="GET")throw b.errors.exception({header:t,message:"Expected http/s scheme when method is not GET."})}let s=[];for(let g of A){let E=new bA(g)[je];if(!ao(E.url))throw b.errors.exception({header:t,message:"Expected http/s scheme."});E.initiator="fetch",E.destination="subresource",n.push(E);let Q=Cr();s.push(HR({request:E,processResponse(I){if(I.type==="error"||I.status===206||I.status<200||I.status>299)Q.reject(b.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(I.headersList.contains("vary")){let C=Zc(I.headersList.get("vary"));for(let B of C)if(B==="*"){Q.reject(b.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let h of s)h.abort();return}}},processResponseEndOfBody(I){if(I.aborted){Q.reject(new DOMException("aborted","AbortError"));return}Q.resolve(I)}})),r.push(Q.promise)}let i=await Promise.all(r),a=[],c=0;for(let g of i){let E={type:"put",request:n[c],response:g};a.push(E),c++}let l=Cr(),u=null;try{this.#A(a)}catch(g){u=g}return queueMicrotask(()=>{u===null?l.resolve(void 0):l.reject(u)}),l.promise}async put(A,t){b.brandCheck(this,e);let r="Cache.put";b.argumentLengthCheck(arguments,2,r),A=b.converters.RequestInfo(A,r,"request"),t=b.converters.Response(t,r,"response");let n=null;if(A instanceof bA?n=A[je]:n=new bA(A)[je],!ao(n.url)||n.method!=="GET")throw b.errors.exception({header:r,message:"Expected an http/s scheme when method is not GET"});let s=t[je];if(s.status===206)throw b.errors.exception({header:r,message:"Got 206 status"});if(s.headersList.contains("vary")){let E=Zc(s.headersList.get("vary"));for(let Q of E)if(Q==="*")throw b.errors.exception({header:r,message:"Got * vary field value"})}if(s.body&&(xR(s.body.stream)||s.body.stream.locked))throw b.errors.exception({header:r,message:"Response body is locked or disturbed"});let o=GR(s),i=Cr();if(s.body!=null){let Q=s.body.stream.getReader();VR(Q).then(i.resolve,i.reject)}else i.resolve(void 0);let a=[],c={type:"put",request:n,response:o};a.push(c);let l=await i.promise;o.body!=null&&(o.body.source=l);let u=Cr(),g=null;try{this.#A(a)}catch(E){g=E}return queueMicrotask(()=>{g===null?u.resolve():u.reject(g)}),u.promise}async delete(A,t={}){b.brandCheck(this,e);let r="Cache.delete";b.argumentLengthCheck(arguments,1,r),A=b.converters.RequestInfo(A,r,"request"),t=b.converters.CacheQueryOptions(t,r,"options");let n=null;if(A instanceof bA){if(n=A[je],n.method!=="GET"&&!t.ignoreMethod)return!1}else zc(typeof A=="string"),n=new bA(A)[je];let s=[],o={type:"delete",request:n,options:t};s.push(o);let i=Cr(),a=null,c;try{c=this.#A(s)}catch(l){a=l}return queueMicrotask(()=>{a===null?i.resolve(!!c?.length):i.reject(a)}),i.promise}async keys(A=void 0,t={}){b.brandCheck(this,e);let r="Cache.keys";A!==void 0&&(A=b.converters.RequestInfo(A,r,"request")),t=b.converters.CacheQueryOptions(t,r,"options");let n=null;if(A!==void 0)if(A instanceof bA){if(n=A[je],n.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(n=new bA(A)[je]);let s=Cr(),o=[];if(A===void 0)for(let i of this.#e)o.push(i[0]);else{let i=this.#t(n,t);for(let a of i)o.push(a[0])}return queueMicrotask(()=>{let i=[];for(let a of o){let c=vR(a,new AbortController().signal,"immutable");i.push(c)}s.resolve(Object.freeze(i))}),s.promise}#A(A){let t=this.#e,r=[...t],n=[],s=[];try{for(let o of A){if(o.type!=="delete"&&o.type!=="put")throw b.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(o.type==="delete"&&o.response!=null)throw b.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#t(o.request,o.options,n).length)throw new DOMException("???","InvalidStateError");let i;if(o.type==="delete"){if(i=this.#t(o.request,o.options),i.length===0)return[];for(let a of i){let c=t.indexOf(a);zc(c!==-1),t.splice(c,1)}}else if(o.type==="put"){if(o.response==null)throw b.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let a=o.request;if(!ao(a.url))throw b.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(a.method!=="GET")throw b.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(o.options!=null)throw b.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});i=this.#t(o.request);for(let c of i){let l=t.indexOf(c);zc(l!==-1),t.splice(l,1)}t.push([o.request,o.response]),n.push([o.request,o.response])}s.push([o.request,o.response])}return s}catch(o){throw this.#e.length=0,this.#e=r,o}}#t(A,t,r){let n=[],s=r??this.#e;for(let o of s){let[i,a]=o;this.#s(A,i,a,t)&&n.push(o)}return n}#s(A,t,r=null,n){let s=new URL(A.url),o=new URL(t.url);if(n?.ignoreSearch&&(o.search="",s.search=""),!TR(s,o,!0))return!1;if(r==null||n?.ignoreVary||!r.headersList.contains("vary"))return!0;let i=Zc(r.headersList.get("vary"));for(let a of i){if(a==="*")return!1;let c=t.headersList.get(a),l=A.headersList.get(a);if(c!==l)return!1}return!0}#n(A,t,r=1/0){let n=null;if(A!==void 0)if(A instanceof bA){if(n=A[je],n.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(n=new bA(A)[je]);let s=[];if(A===void 0)for(let i of this.#e)s.push(i[1]);else{let i=this.#t(n,t);for(let a of i)s.push(a[1])}let o=[];for(let i of s){let a=JR(i,"immutable");if(o.push(a.clone()),o.length>=r)break}return Object.freeze(o)}};Object.defineProperties(co.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:wt,matchAll:wt,add:wt,addAll:wt,put:wt,delete:wt,keys:wt});var LC=[{key:"ignoreSearch",converter:b.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:b.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:b.converters.boolean,defaultValue:()=>!1}];b.converters.CacheQueryOptions=b.dictionaryConverter(LC);b.converters.MultiCacheQueryOptions=b.dictionaryConverter([...LC,{key:"cacheName",converter:b.converters.DOMString}]);b.converters.Response=b.interfaceConverter(YR);b.converters["sequence<RequestInfo>"]=b.sequenceConverter(b.converters.RequestInfo);TC.exports={Cache:co}});var GC=f((Ex,YC)=>{"use strict";var{kConstruct:In}=io(),{Cache:go}=xC(),{webidl:Qe}=ue(),{kEnumerableProperty:Cn}=x(),uo=class e{#e=new Map;constructor(){arguments[0]!==In&&Qe.illegalConstructor(),Qe.util.markAsUncloneable(this)}async match(A,t={}){if(Qe.brandCheck(this,e),Qe.argumentLengthCheck(arguments,1,"CacheStorage.match"),A=Qe.converters.RequestInfo(A),t=Qe.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#e.has(t.cacheName)){let r=this.#e.get(t.cacheName);return await new go(In,r).match(A,t)}}else for(let r of this.#e.values()){let s=await new go(In,r).match(A,t);if(s!==void 0)return s}}async has(A){Qe.brandCheck(this,e);let t="CacheStorage.has";return Qe.argumentLengthCheck(arguments,1,t),A=Qe.converters.DOMString(A,t,"cacheName"),this.#e.has(A)}async open(A){Qe.brandCheck(this,e);let t="CacheStorage.open";if(Qe.argumentLengthCheck(arguments,1,t),A=Qe.converters.DOMString(A,t,"cacheName"),this.#e.has(A)){let n=this.#e.get(A);return new go(In,n)}let r=[];return this.#e.set(A,r),new go(In,r)}async delete(A){Qe.brandCheck(this,e);let t="CacheStorage.delete";return Qe.argumentLengthCheck(arguments,1,t),A=Qe.converters.DOMString(A,t,"cacheName"),this.#e.delete(A)}async keys(){return Qe.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(uo.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:Cn,has:Cn,open:Cn,delete:Cn,keys:Cn});YC.exports={CacheStorage:uo}});var vC=f((Qx,JC)=>{"use strict";JC.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var jc=f((Bx,OC)=>{"use strict";function qR(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>=0&&t<=8||t>=10&&t<=31||t===127)return!0}return!1}function Kc(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t<33||t>126||t===34||t===40||t===41||t===60||t===62||t===64||t===44||t===59||t===58||t===92||t===47||t===91||t===93||t===63||t===61||t===123||t===125)throw new Error("Invalid cookie name")}}function Xc(e){let A=e.length,t=0;if(e[0]==='"'){if(A===1||e[A-1]!=='"')throw new Error("Invalid cookie value");--A,++t}for(;t<A;){let r=e.charCodeAt(t++);if(r<33||r>126||r===34||r===44||r===59||r===92)throw new Error("Invalid cookie value")}}function VC(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t<32||t>126||t===59)throw new Error("Invalid cookie path")}}function HC(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function OR(e){if(e===" ")return;if(e.length>255)throw new Error("Invalid cookie domain");let A=0;for(let t=0;t<e.length;++t){let r=e.charCodeAt(t);if(r===46){if(A===0)throw new Error("Invalid cookie domain");if(e.charCodeAt(t-1)===45)throw new Error("Invalid cookie domain");A=0;continue}if(A===0&&!HC(r))throw new Error("Invalid cookie domain");if(!HC(r)&&r!==45)throw new Error("Invalid cookie domain");if(++A>63)throw new Error("Invalid cookie domain")}if(A===0||e.charCodeAt(e.length-1)===45)throw new Error("Invalid cookie domain")}var WR=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],PR=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],lo=Array(61).fill(0).map((e,A)=>A.toString().padStart(2,"0"));function qC(e){return typeof e=="number"&&(e=new Date(e)),`${WR[e.getUTCDay()]}, ${lo[e.getUTCDate()]} ${PR[e.getUTCMonth()]} ${e.getUTCFullYear()} ${lo[e.getUTCHours()]}:${lo[e.getUTCMinutes()]}:${lo[e.getUTCSeconds()]} GMT`}function _R(e){if(e<0)throw new Error("Invalid cookie max-age")}function ZR(e){if(e.name.length===0)return null;Kc(e.name),Xc(e.value);let A=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&A.push("Secure"),e.httpOnly&&A.push("HttpOnly"),typeof e.maxAge=="number"&&(_R(e.maxAge),A.push(`Max-Age=${e.maxAge}`)),e.domain&&(OR(e.domain),A.push(`Domain=${e.domain}`)),e.path&&(VC(e.path),A.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&A.push(`Expires=${qC(e.expires)}`),e.sameSite&&A.push(`SameSite=${e.sameSite}`);for(let t of e.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[r,...n]=t.split("="),s=r.trim(),o=n.join("=");Kc(s),Xc(o),A.push(`${s}=${o}`)}return A.join("; ")}OC.exports={isCTLExcludingHtab:qR,validateCookieName:Kc,validateCookiePath:VC,validateCookieValue:Xc,toIMFDate:qC,stringify:ZR}});var PC=f((Ix,WC)=>{"use strict";var{maxNameValuePairSize:zR,maxAttributeValueSize:KR}=vC(),{isCTLExcludingHtab:XR}=jc(),{collectASequenceOfCodePointsFast:Eo}=de(),jR=d("node:assert");function $R(e){if(XR(e))return null;let A="",t="",r="",n="";if(e.includes(";")){let s={position:0};A=Eo(";",e,s),t=e.slice(s.position)}else A=e;if(!A.includes("="))n=A;else{let s={position:0};r=Eo("=",A,s),n=A.slice(s.position+1)}return r=r.trim(),n=n.trim(),r.length+n.length>zR?null:{name:r,value:n,...hr(t)}}function hr(e,A={}){if(e.length===0)return A;jR(e[0]===";"),e=e.slice(1);let t="";e.includes(";")?(t=Eo(";",e,{position:0}),e=e.slice(t.length)):(t=e,e="");let r="",n="";if(t.includes("=")){let o={position:0};r=Eo("=",t,o),n=t.slice(o.position+1)}else r=t;if(r=r.trim(),n=n.trim(),n.length>KR)return hr(e,A);let s=r.toLowerCase();if(s==="expires"){let o=new Date(n);A.expires=o}else if(s==="max-age"){let o=n.charCodeAt(0);if((o<48||o>57)&&n[0]!=="-"||!/^\d+$/.test(n))return hr(e,A);let i=Number(n);A.maxAge=i}else if(s==="domain"){let o=n;o[0]==="."&&(o=o.slice(1)),o=o.toLowerCase(),A.domain=o}else if(s==="path"){let o="";n.length===0||n[0]!=="/"?o="/":o=n,A.path=o}else if(s==="secure")A.secure=!0;else if(s==="httponly")A.httpOnly=!0;else if(s==="samesite"){let o=n.toLowerCase();o==="none"?A.sameSite="None":o==="strict"?A.sameSite="Strict":o==="lax"&&(A.sameSite="Lax")}else A.unparsed??=[],A.unparsed.push(`${r}=${n}`);return hr(e,A)}WC.exports={parseSetCookie:$R,parseUnparsedAttributes:hr}});var zC=f((Cx,ZC)=>{"use strict";var{parseSetCookie:eS}=PC(),{stringify:AS}=jc(),{webidl:G}=ue(),{Headers:Qo}=Ct();function tS(e){G.argumentLengthCheck(arguments,1,"getCookies"),G.brandCheck(e,Qo,{strict:!1});let A=e.get("cookie"),t={};if(!A)return t;for(let r of A.split(";")){let[n,...s]=r.split("=");t[n.trim()]=s.join("=")}return t}function rS(e,A,t){G.brandCheck(e,Qo,{strict:!1});let r="deleteCookie";G.argumentLengthCheck(arguments,2,r),A=G.converters.DOMString(A,r,"name"),t=G.converters.DeleteCookieAttributes(t),_C(e,{name:A,value:"",expires:new Date(0),...t})}function nS(e){G.argumentLengthCheck(arguments,1,"getSetCookies"),G.brandCheck(e,Qo,{strict:!1});let A=e.getSetCookie();return A?A.map(t=>eS(t)):[]}function _C(e,A){G.argumentLengthCheck(arguments,2,"setCookie"),G.brandCheck(e,Qo,{strict:!1}),A=G.converters.Cookie(A);let t=AS(A);t&&e.append("Set-Cookie",t)}G.converters.DeleteCookieAttributes=G.dictionaryConverter([{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:()=>null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:()=>null}]);G.converters.Cookie=G.dictionaryConverter([{converter:G.converters.DOMString,key:"name"},{converter:G.converters.DOMString,key:"value"},{converter:G.nullableConverter(e=>typeof e=="number"?G.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:()=>null},{converter:G.nullableConverter(G.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:()=>null},{converter:G.nullableConverter(G.converters.boolean),key:"secure",defaultValue:()=>null},{converter:G.nullableConverter(G.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:G.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:G.sequenceConverter(G.converters.DOMString),key:"unparsed",defaultValue:()=>new Array(0)}]);ZC.exports={getCookies:tS,deleteCookie:rS,getSetCookies:nS,setCookie:_C}});var fr=f((hx,XC)=>{"use strict";var{webidl:D}=ue(),{kEnumerableProperty:me}=x(),{kConstruct:KC}=j(),{MessagePort:sS}=d("node:worker_threads"),dr=class e extends Event{#e;constructor(A,t={}){if(A===KC){super(arguments[1],arguments[2]),D.util.markAsUncloneable(this);return}let r="MessageEvent constructor";D.argumentLengthCheck(arguments,1,r),A=D.converters.DOMString(A,r,"type"),t=D.converters.MessageEventInit(t,r,"eventInitDict"),super(A,t),this.#e=t,D.util.markAsUncloneable(this)}get data(){return D.brandCheck(this,e),this.#e.data}get origin(){return D.brandCheck(this,e),this.#e.origin}get lastEventId(){return D.brandCheck(this,e),this.#e.lastEventId}get source(){return D.brandCheck(this,e),this.#e.source}get ports(){return D.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(A,t=!1,r=!1,n=null,s="",o="",i=null,a=[]){return D.brandCheck(this,e),D.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new e(A,{bubbles:t,cancelable:r,data:n,origin:s,lastEventId:o,source:i,ports:a})}static createFastMessageEvent(A,t){let r=new e(KC,A,t);return r.#e=t,r.#e.data??=null,r.#e.origin??="",r.#e.lastEventId??="",r.#e.source??=null,r.#e.ports??=[],r}},{createFastMessageEvent:oS}=dr;delete dr.createFastMessageEvent;var Bo=class e extends Event{#e;constructor(A,t={}){let r="CloseEvent constructor";D.argumentLengthCheck(arguments,1,r),A=D.converters.DOMString(A,r,"type"),t=D.converters.CloseEventInit(t),super(A,t),this.#e=t,D.util.markAsUncloneable(this)}get wasClean(){return D.brandCheck(this,e),this.#e.wasClean}get code(){return D.brandCheck(this,e),this.#e.code}get reason(){return D.brandCheck(this,e),this.#e.reason}},Io=class e extends Event{#e;constructor(A,t){let r="ErrorEvent constructor";D.argumentLengthCheck(arguments,1,r),super(A,t),D.util.markAsUncloneable(this),A=D.converters.DOMString(A,r,"type"),t=D.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return D.brandCheck(this,e),this.#e.message}get filename(){return D.brandCheck(this,e),this.#e.filename}get lineno(){return D.brandCheck(this,e),this.#e.lineno}get colno(){return D.brandCheck(this,e),this.#e.colno}get error(){return D.brandCheck(this,e),this.#e.error}};Object.defineProperties(dr.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:me,origin:me,lastEventId:me,source:me,ports:me,initMessageEvent:me});Object.defineProperties(Bo.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:me,code:me,wasClean:me});Object.defineProperties(Io.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:me,filename:me,lineno:me,colno:me,error:me});D.converters.MessagePort=D.interfaceConverter(sS);D.converters["sequence<MessagePort>"]=D.sequenceConverter(D.converters.MessagePort);var $c=[{key:"bubbles",converter:D.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:D.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:D.converters.boolean,defaultValue:()=>!1}];D.converters.MessageEventInit=D.dictionaryConverter([...$c,{key:"data",converter:D.converters.any,defaultValue:()=>null},{key:"origin",converter:D.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:D.converters.DOMString,defaultValue:()=>""},{key:"source",converter:D.nullableConverter(D.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:D.converters["sequence<MessagePort>"],defaultValue:()=>new Array(0)}]);D.converters.CloseEventInit=D.dictionaryConverter([...$c,{key:"wasClean",converter:D.converters.boolean,defaultValue:()=>!1},{key:"code",converter:D.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:D.converters.USVString,defaultValue:()=>""}]);D.converters.ErrorEventInit=D.dictionaryConverter([...$c,{key:"message",converter:D.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:D.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:D.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:D.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:D.converters.any}]);XC.exports={MessageEvent:dr,CloseEvent:Bo,ErrorEvent:Io,createFastMessageEvent:oS}});var mt=f((dx,jC)=>{"use strict";var iS="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",aS={enumerable:!0,writable:!1,configurable:!1},cS={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},gS={NOT_SENT:0,PROCESSING:1,SENT:2},uS={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},lS=2**16-1,ES={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},QS=Buffer.allocUnsafe(0),BS={string:1,typedArray:2,arrayBuffer:3,blob:4};jC.exports={uid:iS,sentCloseFrameState:gS,staticPropertyDescriptors:aS,states:cS,opcodes:uS,maxUnsigned16Bit:lS,parserStates:ES,emptyBuffer:QS,sendHints:BS}});var hn=f((fx,$C)=>{"use strict";$C.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var pn=f((px,ah)=>{"use strict";var{kReadyState:dn,kController:IS,kResponse:CS,kBinaryType:hS,kWebSocketURL:dS}=hn(),{states:fn,opcodes:ZA}=mt(),{ErrorEvent:fS,createFastMessageEvent:pS}=fr(),{isUtf8:wS}=d("node:buffer"),{collectASequenceOfCodePointsFast:mS,removeHTTPWhitespace:eh}=de();function yS(e){return e[dn]===fn.CONNECTING}function DS(e){return e[dn]===fn.OPEN}function bS(e){return e[dn]===fn.CLOSING}function kS(e){return e[dn]===fn.CLOSED}function eg(e,A,t=(n,s)=>new Event(n,s),r={}){let n=t(e,r);A.dispatchEvent(n)}function FS(e,A,t){if(e[dn]!==fn.OPEN)return;let r;if(A===ZA.TEXT)try{r=ih(t)}catch{th(e,"Received invalid UTF-8 in text frame.");return}else A===ZA.BINARY&&(e[hS]==="blob"?r=new Blob([t]):r=RS(t));eg("message",e,pS,{origin:e[dS].origin,data:r})}function RS(e){return e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function SS(e){if(e.length===0)return!1;for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t<33||t>126||t===34||t===40||t===41||t===44||t===47||t===58||t===59||t===60||t===61||t===62||t===63||t===64||t===91||t===92||t===93||t===123||t===125)return!1}return!0}function NS(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function th(e,A){let{[IS]:t,[CS]:r}=e;t.abort(),r?.socket&&!r.socket.destroyed&&r.socket.destroy(),A&&eg("error",e,(n,s)=>new fS(n,s),{error:new Error(A),message:A})}function rh(e){return e===ZA.CLOSE||e===ZA.PING||e===ZA.PONG}function nh(e){return e===ZA.CONTINUATION}function sh(e){return e===ZA.TEXT||e===ZA.BINARY}function US(e){return sh(e)||nh(e)||rh(e)}function MS(e){let A={position:0},t=new Map;for(;A.position<e.length;){let r=mS(";",e,A),[n,s=""]=r.split("=");t.set(eh(n,!0,!1),eh(s,!1,!0)),A.position++}return t}function LS(e){if(e.length===0)return!1;for(let t=0;t<e.length;t++){let r=e.charCodeAt(t);if(r<48||r>57)return!1}let A=Number.parseInt(e,10);return A>=8&&A<=15}var oh=typeof process.versions.icu=="string",Ah=oh?new TextDecoder("utf-8",{fatal:!0}):void 0,ih=oh?Ah.decode.bind(Ah):function(e){if(wS(e))return e.toString("utf-8");throw new TypeError("Invalid utf-8 received.")};ah.exports={isConnecting:yS,isEstablished:DS,isClosing:bS,isClosed:kS,fireEvent:eg,isValidSubprotocol:SS,isValidStatusCode:NS,failWebsocketConnection:th,websocketMessageReceived:FS,utf8Decode:ih,isControlFrame:rh,isContinuationFrame:nh,isTextBinaryFrame:sh,isValidOpcode:US,parseExtensions:MS,isValidClientWindowBits:LS}});var ho=f((wx,ch)=>{"use strict";var{maxUnsigned16Bit:TS}=mt(),Co=16386,Ag,wn=null,pr=Co;try{Ag=d("node:crypto")}catch{Ag={randomFillSync:function(A,t,r){for(let n=0;n<A.length;++n)A[n]=Math.random()*255|0;return A}}}function xS(){return pr===Co&&(pr=0,Ag.randomFillSync(wn??=Buffer.allocUnsafe(Co),0,Co)),[wn[pr++],wn[pr++],wn[pr++],wn[pr++]]}var tg=class{constructor(A){this.frameData=A}createFrame(A){let t=this.frameData,r=xS(),n=t?.byteLength??0,s=n,o=6;n>TS?(o+=8,s=127):n>125&&(o+=2,s=126);let i=Buffer.allocUnsafe(n+o);i[0]=i[1]=0,i[0]|=128,i[0]=(i[0]&240)+A;i[o-4]=r[0],i[o-3]=r[1],i[o-2]=r[2],i[o-1]=r[3],i[1]=s,s===126?i.writeUInt16BE(n,2):s===127&&(i[2]=i[3]=0,i.writeUIntBE(n,4,6)),i[1]|=128;for(let a=0;a<n;++a)i[o+a]=t[a]^r[a&3];return i}};ch.exports={WebsocketFrameSend:tg}});var ng=f((mx,Ih)=>{"use strict";var{uid:YS,states:mn,sentCloseFrameState:fo,emptyBuffer:GS,opcodes:JS}=mt(),{kReadyState:yn,kSentClose:po,kByteParser:uh,kReceivedClose:gh,kResponse:lh}=hn(),{fireEvent:vS,failWebsocketConnection:zA,isClosing:HS,isClosed:VS,isEstablished:qS,parseExtensions:OS}=pn(),{channels:wr}=Ut(),{CloseEvent:WS}=fr(),{makeRequest:PS}=Qr(),{fetching:_S}=Qn(),{Headers:ZS,getHeadersList:zS}=Ct(),{getDecodeSplit:KS}=be(),{WebsocketFrameSend:XS}=ho(),rg;try{rg=d("node:crypto")}catch{}function jS(e,A,t,r,n,s){let o=e;o.protocol=e.protocol==="ws:"?"http:":"https:";let i=PS({urlList:[o],client:t,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(s.headers){let u=zS(new ZS(s.headers));i.headersList=u}let a=rg.randomBytes(16).toString("base64");i.headersList.append("sec-websocket-key",a),i.headersList.append("sec-websocket-version","13");for(let u of A)i.headersList.append("sec-websocket-protocol",u);return i.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits"),_S({request:i,useParallelQueue:!0,dispatcher:s.dispatcher,processResponse(u){if(u.type==="error"||u.status!==101){zA(r,"Received network error or non-101 status code.");return}if(A.length!==0&&!u.headersList.get("Sec-WebSocket-Protocol")){zA(r,"Server did not respond with sent protocols.");return}if(u.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){zA(r,'Server did not set Upgrade header to "websocket".');return}if(u.headersList.get("Connection")?.toLowerCase()!=="upgrade"){zA(r,'Server did not set Connection header to "upgrade".');return}let g=u.headersList.get("Sec-WebSocket-Accept"),E=rg.createHash("sha1").update(a+YS).digest("base64");if(g!==E){zA(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let Q=u.headersList.get("Sec-WebSocket-Extensions"),I;if(Q!==null&&(I=OS(Q),!I.has("permessage-deflate"))){zA(r,"Sec-WebSocket-Extensions header does not match.");return}let C=u.headersList.get("Sec-WebSocket-Protocol");if(C!==null&&!KS("sec-websocket-protocol",i.headersList).includes(C)){zA(r,"Protocol was not set in the opening handshake.");return}u.socket.on("data",Eh),u.socket.on("close",Qh),u.socket.on("error",Bh),wr.open.hasSubscribers&&wr.open.publish({address:u.socket.address(),protocol:C,extensions:Q}),n(u,I)}})}function $S(e,A,t,r){if(!(HS(e)||VS(e)))if(!qS(e))zA(e,"Connection was closed before it was established."),e[yn]=mn.CLOSING;else if(e[po]===fo.NOT_SENT){e[po]=fo.PROCESSING;let n=new XS;A!==void 0&&t===void 0?(n.frameData=Buffer.allocUnsafe(2),n.frameData.writeUInt16BE(A,0)):A!==void 0&&t!==void 0?(n.frameData=Buffer.allocUnsafe(2+r),n.frameData.writeUInt16BE(A,0),n.frameData.write(t,2,"utf-8")):n.frameData=GS,e[lh].socket.write(n.createFrame(JS.CLOSE)),e[po]=fo.SENT,e[yn]=mn.CLOSING}else e[yn]=mn.CLOSING}function Eh(e){this.ws[uh].write(e)||this.pause()}function Qh(){let{ws:e}=this,{[lh]:A}=e;A.socket.off("data",Eh),A.socket.off("close",Qh),A.socket.off("error",Bh);let t=e[po]===fo.SENT&&e[gh],r=1005,n="",s=e[uh].closingInfo;s&&!s.error?(r=s.code??1005,n=s.reason):e[gh]||(r=1006),e[yn]=mn.CLOSED,vS("close",e,(o,i)=>new WS(o,i),{wasClean:t,code:r,reason:n}),wr.close.hasSubscribers&&wr.close.publish({websocket:e,code:r,reason:n})}function Bh(e){let{ws:A}=this;A[yn]=mn.CLOSING,wr.socketError.hasSubscribers&&wr.socketError.publish(e),this.destroy()}Ih.exports={establishWebSocketConnection:jS,closeWebSocketConnection:$S}});var hh=f((yx,Ch)=>{"use strict";var{createInflateRaw:eN,Z_DEFAULT_WINDOWBITS:AN}=d("node:zlib"),{isValidClientWindowBits:tN}=pn(),{MessageSizeExceededError:rN}=v(),nN=Buffer.from([0,0,255,255]),wo=Symbol("kBuffer"),Dn=Symbol("kLength"),sg=class{#e;#A={};#t=0;constructor(A,t){this.#A.serverNoContextTakeover=A.has("server_no_context_takeover"),this.#A.serverMaxWindowBits=A.get("server_max_window_bits"),this.#t=t.maxPayloadSize}decompress(A,t,r){if(!this.#e){let n=AN;if(this.#A.serverMaxWindowBits){if(!tN(this.#A.serverMaxWindowBits)){r(new Error("Invalid server_max_window_bits"));return}n=Number.parseInt(this.#A.serverMaxWindowBits)}try{this.#e=eN({windowBits:n})}catch(s){r(s);return}this.#e[wo]=[],this.#e[Dn]=0,this.#e.on("data",s=>{if(this.#e[Dn]+=s.length,this.#t>0&&this.#e[Dn]>this.#t){r(new rN),this.#e.removeAllListeners(),this.#e=null;return}this.#e[wo].push(s)}),this.#e.on("error",s=>{this.#e=null,r(s)})}this.#e.write(A),t&&this.#e.write(nN),this.#e.flush(()=>{if(!this.#e)return;let n=Buffer.concat(this.#e[wo],this.#e[Dn]);this.#e[wo].length=0,this.#e[Dn]=0,r(null,n)})}};Ch.exports={PerMessageDeflate:sg}});var Fh=f((Dx,kh)=>{"use strict";var{Writable:sN}=d("node:stream"),oN=d("node:assert"),{parserStates:ye,opcodes:mr,states:iN,emptyBuffer:dh,sentCloseFrameState:fh}=mt(),{kReadyState:aN,kSentClose:ph,kResponse:wh,kReceivedClose:mh}=hn(),{channels:mo}=Ut(),{isValidStatusCode:cN,isValidOpcode:gN,failWebsocketConnection:Le,websocketMessageReceived:yh,utf8Decode:uN,isControlFrame:og,isTextBinaryFrame:ig,isContinuationFrame:lN}=pn(),{WebsocketFrameSend:Dh}=ho(),{closeWebSocketConnection:bh}=ng(),{PerMessageDeflate:EN}=hh(),{MessageSizeExceededError:ag}=v();function bn(e,A,t){bh(e,A,t,Buffer.byteLength(t)),Le(e,t)}var cg=class extends sN{#e=[];#A=0;#t=0;#s=!1;#n=ye.INFO;#r={};#o=[];#i;#c;#a;constructor(A,t,r={}){super(),this.ws=A,this.#i=t??new Map,this.#c=r.maxFragments??0,this.#a=r.maxPayloadSize??0,this.#i.has("permessage-deflate")&&this.#i.set("permessage-deflate",new EN(t,r))}_write(A,t,r){this.#e.push(A),this.#t+=A.length,this.#s=!0,this.run(r)}#g(){return this.#a>0&&!og(this.#r.opcode)&&this.#r.payloadLength+this.#A>this.#a?(bn(this.ws,1009,"Payload size exceeds maximum allowed size"),!1):!0}run(A){for(;this.#s;)if(this.#n===ye.INFO){if(this.#t<2)return A();let t=this.consume(2),r=(t[0]&128)!==0,n=t[0]&15,s=(t[1]&128)===128,o=!r&&n!==mr.CONTINUATION,i=t[1]&127,a=t[0]&64,c=t[0]&32,l=t[0]&16;if(!gN(n))return Le(this.ws,"Invalid opcode received"),A();if(s)return Le(this.ws,"Frame cannot be masked"),A();if(a!==0&&!this.#i.has("permessage-deflate")){Le(this.ws,"Expected RSV1 to be clear.");return}if(c!==0||l!==0){Le(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(o&&!ig(n)){Le(this.ws,"Invalid frame type was fragmented.");return}if(ig(n)&&this.#o.length>0){Le(this.ws,"Expected continuation frame");return}if(this.#r.fragmented&&o){Le(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((i>125||o)&&og(n)){Le(this.ws,"Control frame either too large or fragmented");return}if(lN(n)&&this.#o.length===0&&!this.#r.compressed){Le(this.ws,"Unexpected continuation frame");return}if(i<=125){if(this.#r.payloadLength=i,this.#n=ye.READ_DATA,!this.#g())return}else i===126?this.#n=ye.PAYLOADLENGTH_16:i===127&&(this.#n=ye.PAYLOADLENGTH_64);ig(n)&&(this.#r.binaryType=n,this.#r.compressed=a!==0),this.#r.opcode=n,this.#r.masked=s,this.#r.fin=r,this.#r.fragmented=o}else if(this.#n===ye.PAYLOADLENGTH_16){if(this.#t<2)return A();let t=this.consume(2);if(this.#r.payloadLength=t.readUInt16BE(0),this.#n=ye.READ_DATA,!this.#g())return}else if(this.#n===ye.PAYLOADLENGTH_64){if(this.#t<8)return A();let t=this.consume(8),r=t.readUInt32BE(0),n=t.readUInt32BE(4);if(r!==0||n>2**31-1){Le(this.ws,"Received payload length > 2^31 bytes.");return}if(this.#r.payloadLength=n,this.#n=ye.READ_DATA,!this.#g())return}else if(this.#n===ye.READ_DATA){if(this.#t<this.#r.payloadLength)return A();let t=this.consume(this.#r.payloadLength);if(og(this.#r.opcode))this.#s=this.parseControlFrame(t),this.#n=ye.INFO;else if(this.#r.compressed){this.#i.get("permessage-deflate").decompress(t,this.#r.fin,(r,n)=>{if(r){let s=r instanceof ag?1009:1007;bn(this.ws,s,r.message);return}if(this.writeFragments(n)){if(this.#a>0&&this.#A>this.#a){bn(this.ws,1009,new ag().message);return}if(!this.#r.fin){this.#n=ye.INFO,this.#s=!0,this.run(A);return}yh(this.ws,this.#r.binaryType,this.consumeFragments()),this.#s=!0,this.#n=ye.INFO,this.run(A)}}),this.#s=!1;break}else{if(!this.writeFragments(t))return;if(this.#a>0&&this.#A>this.#a){bn(this.ws,1009,new ag().message);return}!this.#r.fragmented&&this.#r.fin&&yh(this.ws,this.#r.binaryType,this.consumeFragments()),this.#n=ye.INFO}}}consume(A){if(A>this.#t)throw new Error("Called consume() before buffers satiated.");if(A===0)return dh;if(this.#e[0].length===A)return this.#t-=this.#e[0].length,this.#e.shift();let t=Buffer.allocUnsafe(A),r=0;for(;r!==A;){let n=this.#e[0],{length:s}=n;if(s+r===A){t.set(this.#e.shift(),r);break}else if(s+r>A){t.set(n.subarray(0,A-r),r),this.#e[0]=n.subarray(A-r);break}else t.set(this.#e.shift(),r),r+=n.length}return this.#t-=A,t}writeFragments(A){return this.#c>0&&this.#o.length===this.#c?(bn(this.ws,1008,"Too many message fragments"),!1):(this.#A+=A.length,this.#o.push(A),!0)}consumeFragments(){let A=this.#o;if(A.length===1)return this.#A=0,A.shift();let t=Buffer.concat(A,this.#A);return this.#o=[],this.#A=0,t}parseCloseBody(A){oN(A.length!==1);let t;if(A.length>=2&&(t=A.readUInt16BE(0)),t!==void 0&&!cN(t))return{code:1002,reason:"Invalid status code",error:!0};let r=A.subarray(2);r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3));try{r=uN(r)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:t,reason:r,error:!1}}parseControlFrame(A){let{opcode:t,payloadLength:r}=this.#r;if(t===mr.CLOSE){if(r===1)return Le(this.ws,"Received close frame with a 1-byte body."),!1;if(this.#r.closeInfo=this.parseCloseBody(A),this.#r.closeInfo.error){let{code:n,reason:s}=this.#r.closeInfo;return bh(this.ws,n,s,s.length),Le(this.ws,s),!1}if(this.ws[ph]!==fh.SENT){let n=dh;this.#r.closeInfo.code&&(n=Buffer.allocUnsafe(2),n.writeUInt16BE(this.#r.closeInfo.code,0));let s=new Dh(n);this.ws[wh].socket.write(s.createFrame(mr.CLOSE),o=>{o||(this.ws[ph]=fh.SENT)})}return this.ws[aN]=iN.CLOSING,this.ws[mh]=!0,!1}else if(t===mr.PING){if(!this.ws[mh]){let n=new Dh(A);this.ws[wh].socket.write(n.createFrame(mr.PONG)),mo.ping.hasSubscribers&&mo.ping.publish({payload:A})}}else t===mr.PONG&&mo.pong.hasSubscribers&&mo.pong.publish({payload:A});return!0}get closingInfo(){return this.#r.closeInfo}};kh.exports={ByteParser:cg}});var Mh=f((bx,Uh)=>{"use strict";var{WebsocketFrameSend:QN}=ho(),{opcodes:Rh,sendHints:yr}=mt(),BN=Ba(),Sh=Buffer[Symbol.species],gg=class{#e=new BN;#A=!1;#t;constructor(A){this.#t=A}add(A,t,r){if(r!==yr.blob){let s=Nh(A,r);if(!this.#A)this.#t.write(s,t);else{let o={promise:null,callback:t,frame:s};this.#e.push(o)}return}let n={promise:A.arrayBuffer().then(s=>{n.promise=null,n.frame=Nh(s,r)}),callback:t,frame:null};this.#e.push(n),this.#A||this.#s()}async#s(){this.#A=!0;let A=this.#e;for(;!A.isEmpty();){let t=A.shift();t.promise!==null&&await t.promise,this.#t.write(t.frame,t.callback),t.callback=t.frame=null}this.#A=!1}};function Nh(e,A){return new QN(IN(e,A)).createFrame(A===yr.string?Rh.TEXT:Rh.BINARY)}function IN(e,A){switch(A){case yr.string:return Buffer.from(e);case yr.arrayBuffer:case yr.blob:return new Sh(e);case yr.typedArray:return new Sh(e.buffer,e.byteOffset,e.byteLength)}}Uh.exports={SendQueue:gg}});var qh=f((kx,Vh)=>{"use strict";var{webidl:U}=ue(),{URLSerializer:CN}=de(),{environmentSettingsObject:Lh}=be(),{staticPropertyDescriptors:KA,states:kn,sentCloseFrameState:hN,sendHints:yo}=mt(),{kWebSocketURL:Th,kReadyState:ug,kController:xh,kBinaryType:Do,kResponse:Yh,kSentClose:dN,kByteParser:fN}=hn(),{isConnecting:pN,isEstablished:wN,isClosing:mN,isValidSubprotocol:yN,fireEvent:Gh}=pn(),{establishWebSocketConnection:DN,closeWebSocketConnection:Jh}=ng(),{ByteParser:bN}=Fh(),{kEnumerableProperty:Ve,isBlobLike:vh}=x(),{getGlobalDispatcher:kN}=Js(),{types:Hh}=d("node:util"),{ErrorEvent:FN,CloseEvent:RN}=fr(),{SendQueue:SN}=Mh(),Te=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#A=0;#t="";#s="";#n;constructor(A,t=[]){super(),U.util.markAsUncloneable(this);let r="WebSocket constructor";U.argumentLengthCheck(arguments,1,r);let n=U.converters["DOMString or sequence<DOMString> or WebSocketInit"](t,r,"options");A=U.converters.USVString(A,r,"url"),t=n.protocols;let s=Lh.settingsObject.baseUrl,o;try{o=new URL(A,s)}catch(a){throw new DOMException(a,"SyntaxError")}if(o.protocol==="http:"?o.protocol="ws:":o.protocol==="https:"&&(o.protocol="wss:"),o.protocol!=="ws:"&&o.protocol!=="wss:")throw new DOMException(`Expected a ws: or wss: protocol, got ${o.protocol}`,"SyntaxError");if(o.hash||o.href.endsWith("#"))throw new DOMException("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(a=>a.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(a=>yN(a)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[Th]=new URL(o.href);let i=Lh.settingsObject;this[xh]=DN(o,t,i,this,(a,c)=>this.#r(a,c),n),this[ug]=e.CONNECTING,this[dN]=hN.NOT_SENT,this[Do]="blob"}close(A=void 0,t=void 0){U.brandCheck(this,e);let r="WebSocket.close";if(A!==void 0&&(A=U.converters["unsigned short"](A,r,"code",{clamp:!0})),t!==void 0&&(t=U.converters.USVString(t,r,"reason")),A!==void 0&&A!==1e3&&(A<3e3||A>4999))throw new DOMException("invalid code","InvalidAccessError");let n=0;if(t!==void 0&&(n=Buffer.byteLength(t),n>123))throw new DOMException(`Reason must be less than 123 bytes; received ${n}`,"SyntaxError");Jh(this,A,t,n)}send(A){U.brandCheck(this,e);let t="WebSocket.send";if(U.argumentLengthCheck(arguments,1,t),A=U.converters.WebSocketSendData(A,t,"data"),pN(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!wN(this)||mN(this)))if(typeof A=="string"){let r=Buffer.byteLength(A);this.#A+=r,this.#n.add(A,()=>{this.#A-=r},yo.string)}else Hh.isArrayBuffer(A)?(this.#A+=A.byteLength,this.#n.add(A,()=>{this.#A-=A.byteLength},yo.arrayBuffer)):ArrayBuffer.isView(A)?(this.#A+=A.byteLength,this.#n.add(A,()=>{this.#A-=A.byteLength},yo.typedArray)):vh(A)&&(this.#A+=A.size,this.#n.add(A,()=>{this.#A-=A.size},yo.blob))}get readyState(){return U.brandCheck(this,e),this[ug]}get bufferedAmount(){return U.brandCheck(this,e),this.#A}get url(){return U.brandCheck(this,e),CN(this[Th])}get extensions(){return U.brandCheck(this,e),this.#s}get protocol(){return U.brandCheck(this,e),this.#t}get onopen(){return U.brandCheck(this,e),this.#e.open}set onopen(A){U.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof A=="function"?(this.#e.open=A,this.addEventListener("open",A)):this.#e.open=null}get onerror(){return U.brandCheck(this,e),this.#e.error}set onerror(A){U.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof A=="function"?(this.#e.error=A,this.addEventListener("error",A)):this.#e.error=null}get onclose(){return U.brandCheck(this,e),this.#e.close}set onclose(A){U.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof A=="function"?(this.#e.close=A,this.addEventListener("close",A)):this.#e.close=null}get onmessage(){return U.brandCheck(this,e),this.#e.message}set onmessage(A){U.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof A=="function"?(this.#e.message=A,this.addEventListener("message",A)):this.#e.message=null}get binaryType(){return U.brandCheck(this,e),this[Do]}set binaryType(A){U.brandCheck(this,e),A!=="blob"&&A!=="arraybuffer"?this[Do]="blob":this[Do]=A}#r(A,t){this[Yh]=A;let r=this[xh]?.dispatcher?.webSocketOptions,n=r?.maxFragments,s=r?.maxPayloadSize,o=new bN(this,t,{maxFragments:n,maxPayloadSize:s});o.on("drain",NN),o.on("error",UN.bind(this)),A.socket.ws=this,this[fN]=o,this.#n=new SN(A.socket),this[ug]=kn.OPEN;let i=A.headersList.get("sec-websocket-extensions");i!==null&&(this.#s=i);let a=A.headersList.get("sec-websocket-protocol");a!==null&&(this.#t=a),Gh("open",this)}};Te.CONNECTING=Te.prototype.CONNECTING=kn.CONNECTING;Te.OPEN=Te.prototype.OPEN=kn.OPEN;Te.CLOSING=Te.prototype.CLOSING=kn.CLOSING;Te.CLOSED=Te.prototype.CLOSED=kn.CLOSED;Object.defineProperties(Te.prototype,{CONNECTING:KA,OPEN:KA,CLOSING:KA,CLOSED:KA,url:Ve,readyState:Ve,bufferedAmount:Ve,onopen:Ve,onerror:Ve,onclose:Ve,close:Ve,onmessage:Ve,binaryType:Ve,send:Ve,extensions:Ve,protocol:Ve,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(Te,{CONNECTING:KA,OPEN:KA,CLOSING:KA,CLOSED:KA});U.converters["sequence<DOMString>"]=U.sequenceConverter(U.converters.DOMString);U.converters["DOMString or sequence<DOMString>"]=function(e,A,t){return U.util.Type(e)==="Object"&&Symbol.iterator in e?U.converters["sequence<DOMString>"](e):U.converters.DOMString(e,A,t)};U.converters.WebSocketInit=U.dictionaryConverter([{key:"protocols",converter:U.converters["DOMString or sequence<DOMString>"],defaultValue:()=>new Array(0)},{key:"dispatcher",converter:U.converters.any,defaultValue:()=>kN()},{key:"headers",converter:U.nullableConverter(U.converters.HeadersInit)}]);U.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(e){return U.util.Type(e)==="Object"&&!(Symbol.iterator in e)?U.converters.WebSocketInit(e):{protocols:U.converters["DOMString or sequence<DOMString>"](e)}};U.converters.WebSocketSendData=function(e){if(U.util.Type(e)==="Object"){if(vh(e))return U.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||Hh.isArrayBuffer(e))return U.converters.BufferSource(e)}return U.converters.USVString(e)};function NN(){this.ws[Yh].socket.resume()}function UN(e){let A,t;e instanceof RN?(A=e.reason,t=e.code):A=e.message,Gh("error",this,()=>new FN("error",{error:e,message:A})),Jh(this,t)}Vh.exports={WebSocket:Te}});var lg=f((Fx,Oh)=>{"use strict";function MN(e){return e.indexOf("\0")===-1}function LN(e){if(e.length===0)return!1;for(let A=0;A<e.length;A++)if(e.charCodeAt(A)<48||e.charCodeAt(A)>57)return!1;return!0}function TN(e){return new Promise(A=>{setTimeout(A,e).unref()})}Oh.exports={isValidLastEventId:MN,isASCIINumber:LN,delay:TN}});var Zh=f((Rx,_h)=>{"use strict";var{Transform:xN}=d("node:stream"),{isASCIINumber:Wh,isValidLastEventId:Ph}=lg(),kA=[239,187,191],Eg=10,bo=13,YN=58,GN=32,Qg=class extends xN{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(A={}){A.readableObjectMode=!0,super(A),this.state=A.eventSourceSettings||{},A.push&&(this.push=A.push)}_transform(A,t,r){if(A.length===0){r();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,A]):this.buffer=A,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===kA[0]){r();return}this.checkBOM=!1,r();return;case 2:if(this.buffer[0]===kA[0]&&this.buffer[1]===kA[1]){r();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===kA[0]&&this.buffer[1]===kA[1]&&this.buffer[2]===kA[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,r();return}this.checkBOM=!1;break;default:this.buffer[0]===kA[0]&&this.buffer[1]===kA[1]&&this.buffer[2]===kA[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1;break}for(;this.pos<this.buffer.length;){if(this.eventEndCheck){if(this.crlfCheck){if(this.buffer[this.pos]===Eg){this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.crlfCheck=!1;continue}this.crlfCheck=!1}if(this.buffer[this.pos]===Eg||this.buffer[this.pos]===bo){this.buffer[this.pos]===bo&&(this.crlfCheck=!0),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,(this.event.data!==void 0||this.event.event||this.event.id||this.event.retry)&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(this.buffer[this.pos]===Eg||this.buffer[this.pos]===bo){this.buffer[this.pos]===bo&&(this.crlfCheck=!0),this.parseLine(this.buffer.subarray(0,this.pos),this.event),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.eventEndCheck=!0;continue}this.pos++}r()}parseLine(A,t){if(A.length===0)return;let r=A.indexOf(YN);if(r===0)return;let n="",s="";if(r!==-1){n=A.subarray(0,r).toString("utf8");let o=r+1;A[o]===GN&&++o,s=A.subarray(o).toString("utf8")}else n=A.toString("utf8"),s="";switch(n){case"data":t[n]===void 0?t[n]=s:t[n]+=`
45
- ${s}`;break;case"retry":Wh(s)&&(t[n]=s);break;case"id":Ph(s)&&(t[n]=s);break;case"event":s.length>0&&(t[n]=s);break}}processEvent(A){A.retry&&Wh(A.retry)&&(this.state.reconnectionTime=parseInt(A.retry,10)),A.id&&Ph(A.id)&&(this.state.lastEventId=A.id),A.data!==void 0&&this.push({type:A.event||"message",options:{data:A.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};_h.exports={EventSourceStream:Qg}});var td=f((Sx,Ad)=>{"use strict";var{pipeline:JN}=d("node:stream"),{fetching:vN}=Qn(),{makeRequest:HN}=Qr(),{webidl:FA}=ue(),{EventSourceStream:VN}=Zh(),{parseMIMEType:qN}=de(),{createFastMessageEvent:ON}=fr(),{isNetworkError:zh}=ln(),{delay:WN}=lg(),{kEnumerableProperty:yt}=x(),{environmentSettingsObject:Kh}=be(),Xh=!1,jh=3e3,Fn=0,$h=1,Rn=2,PN="anonymous",_N="use-credentials",Dr=class e extends EventTarget{#e={open:null,error:null,message:null};#A=null;#t=!1;#s=Fn;#n=null;#r=null;#o;#i;constructor(A,t={}){super(),FA.util.markAsUncloneable(this);let r="EventSource constructor";FA.argumentLengthCheck(arguments,1,r),Xh||(Xh=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),A=FA.converters.USVString(A,r,"url"),t=FA.converters.EventSourceInitDict(t,r,"eventSourceInitDict"),this.#o=t.dispatcher,this.#i={lastEventId:"",reconnectionTime:jh};let n=Kh,s;try{s=new URL(A,n.settingsObject.baseUrl),this.#i.origin=s.origin}catch(a){throw new DOMException(a,"SyntaxError")}this.#A=s.href;let o=PN;t.withCredentials&&(o=_N,this.#t=!0);let i={redirect:"follow",keepalive:!0,mode:"cors",credentials:o==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};i.client=Kh.settingsObject,i.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],i.cache="no-store",i.initiator="other",i.urlList=[new URL(this.#A)],this.#n=HN(i),this.#c()}get readyState(){return this.#s}get url(){return this.#A}get withCredentials(){return this.#t}#c(){if(this.#s===Rn)return;this.#s=Fn;let A={request:this.#n,dispatcher:this.#o},t=r=>{zh(r)&&(this.dispatchEvent(new Event("error")),this.close()),this.#a()};A.processResponseEndOfBody=t,A.processResponse=r=>{if(zh(r))if(r.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#a();return}let n=r.headersList.get("content-type",!0),s=n!==null?qN(n):"failure",o=s!=="failure"&&s.essence==="text/event-stream";if(r.status!==200||o===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#s=$h,this.dispatchEvent(new Event("open")),this.#i.origin=r.urlList[r.urlList.length-1].origin;let i=new VN({eventSourceSettings:this.#i,push:a=>{this.dispatchEvent(ON(a.type,a.options))}});JN(r.body.stream,i,a=>{a?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#r=vN(A)}async#a(){this.#s!==Rn&&(this.#s=Fn,this.dispatchEvent(new Event("error")),await WN(this.#i.reconnectionTime),this.#s===Fn&&(this.#i.lastEventId.length&&this.#n.headersList.set("last-event-id",this.#i.lastEventId,!0),this.#c()))}close(){FA.brandCheck(this,e),this.#s!==Rn&&(this.#s=Rn,this.#r.abort(),this.#n=null)}get onopen(){return this.#e.open}set onopen(A){this.#e.open&&this.removeEventListener("open",this.#e.open),typeof A=="function"?(this.#e.open=A,this.addEventListener("open",A)):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(A){this.#e.message&&this.removeEventListener("message",this.#e.message),typeof A=="function"?(this.#e.message=A,this.addEventListener("message",A)):this.#e.message=null}get onerror(){return this.#e.error}set onerror(A){this.#e.error&&this.removeEventListener("error",this.#e.error),typeof A=="function"?(this.#e.error=A,this.addEventListener("error",A)):this.#e.error=null}},ed={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:Fn,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:$h,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:Rn,writable:!1}};Object.defineProperties(Dr,ed);Object.defineProperties(Dr.prototype,ed);Object.defineProperties(Dr.prototype,{close:yt,onerror:yt,onmessage:yt,onopen:yt,readyState:yt,url:yt,withCredentials:yt});FA.converters.EventSourceInitDict=FA.dictionaryConverter([{key:"withCredentials",converter:FA.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:FA.converters.any}]);Ad.exports={EventSource:Dr,defaultReconnectionTime:jh}});var od=f((Nx,N)=>{"use strict";var ZN=jt(),rd=Ur(),zN=$t(),KN=eQ(),XN=er(),jN=Ta(),$N=yQ(),eU=NQ(),nd=v(),Fo=x(),{InvalidArgumentError:ko}=nd,br=CB(),AU=Lr(),tU=Ic(),rU=$B(),nU=dc(),sU=rc(),oU=Rs(),{getGlobalDispatcher:sd,setGlobalDispatcher:iU}=Js(),aU=vs(),cU=hs(),gU=ds();Object.assign(rd.prototype,br);N.exports.Dispatcher=rd;N.exports.Client=ZN;N.exports.Pool=zN;N.exports.BalancedPool=KN;N.exports.Agent=XN;N.exports.ProxyAgent=jN;N.exports.EnvHttpProxyAgent=$N;N.exports.RetryAgent=eU;N.exports.RetryHandler=oU;N.exports.DecoratorHandler=aU;N.exports.RedirectHandler=cU;N.exports.createRedirectInterceptor=gU;N.exports.interceptors={redirect:oI(),retry:aI(),dump:gI(),dns:EI()};N.exports.buildConnector=AU;N.exports.errors=nd;N.exports.util={parseHeaders:Fo.parseHeaders,headerNameToString:Fo.headerNameToString};function Sn(e){return(A,t,r)=>{if(typeof t=="function"&&(r=t,t=null),!A||typeof A!="string"&&typeof A!="object"&&!(A instanceof URL))throw new ko("invalid url");if(t!=null&&typeof t!="object")throw new ko("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new ko("invalid opts.path");let o=t.path;t.path.startsWith("/")||(o=`/${o}`),A=new URL(Fo.parseOrigin(A).origin+o)}else t||(t=typeof A=="object"?A:{}),A=Fo.parseURL(A);let{agent:n,dispatcher:s=sd()}=t;if(n)throw new ko("unsupported opts.agent. Did you mean opts.client?");return e.call(s,{...t,origin:A.origin,path:A.search?`${A.pathname}${A.search}`:A.pathname,method:t.method||(t.body?"PUT":"GET")},r)}}N.exports.setGlobalDispatcher=iU;N.exports.getGlobalDispatcher=sd;var uU=Qn().fetch;N.exports.fetch=async function(A,t=void 0){try{return await uU(A,t)}catch(r){throw r&&typeof r=="object"&&Error.captureStackTrace(r),r}};N.exports.Headers=Ct().Headers;N.exports.Response=ln().Response;N.exports.Request=Qr().Request;N.exports.FormData=Hr().FormData;N.exports.File=globalThis.File??d("node:buffer").File;N.exports.FileReader=RC().FileReader;var{setGlobalOrigin:lU,getGlobalOrigin:EU}=xi();N.exports.setGlobalOrigin=lU;N.exports.getGlobalOrigin=EU;var{CacheStorage:QU}=GC(),{kConstruct:BU}=io();N.exports.caches=new QU(BU);var{deleteCookie:IU,getCookies:CU,getSetCookies:hU,setCookie:dU}=zC();N.exports.deleteCookie=IU;N.exports.getCookies=CU;N.exports.getSetCookies=hU;N.exports.setCookie=dU;var{parseMIMEType:fU,serializeAMimeType:pU}=de();N.exports.parseMIMEType=fU;N.exports.serializeAMimeType=pU;var{CloseEvent:wU,ErrorEvent:mU,MessageEvent:yU}=fr();N.exports.WebSocket=qh().WebSocket;N.exports.CloseEvent=wU;N.exports.ErrorEvent=mU;N.exports.MessageEvent=yU;N.exports.request=Sn(br.request);N.exports.stream=Sn(br.stream);N.exports.pipeline=Sn(br.pipeline);N.exports.connect=Sn(br.connect);N.exports.upgrade=Sn(br.upgrade);N.exports.MockClient=tU;N.exports.MockPool=nU;N.exports.MockAgent=rU;N.exports.mockErrors=sU;var{EventSource:DU}=td();N.exports.EventSource=DU});import kr from"node:net";import bU from"node:dns";function Ro(e){let A=String(e).toLowerCase().split("%")[0];if((A.match(/::/g)||[]).length>1)return null;let t=l=>{if(!l)return[];let u=l.split(":"),g=u.at(-1);if(g?.includes(".")){let E=g.split(".").map(Number);if(E.length!==4||E.some(Q=>!Number.isInteger(Q)||Q<0||Q>255))return null;u.splice(u.length-1,1,(E[0]<<8|E[1]).toString(16),(E[2]<<8|E[3]).toString(16))}return u.some(E=>!/^[0-9a-f]{1,4}$/.test(E))?null:u.map(E=>Number.parseInt(E,16))},[r,n]=A.split("::"),s=t(r),o=t(n);if(!s||!o)return null;let i=A.includes("::"),a=8-s.length-o.length;if(!i&&a!==0||i&&a<1)return null;let c=[...s,...Array(Math.max(0,a)).fill(0),...o];return c.length!==8?null:Uint8Array.from(c.flatMap(l=>[l>>8,l&255]))}function Bg(e,A,t){let r=Math.floor(t/8),n=t%8;for(let o=0;o<r;o+=1)if(e[o]!==A[o])return!1;if(!n)return!0;let s=255<<8-n;return(e[r]&s)===(A[r]&s)}function Ig(e){if(kr.isIPv4(e)){let A=e.split(".").map(Number);return!(A[0]===0||A[0]===10||A[0]===127||A[0]>=224||A[0]===100&&A[1]>=64&&A[1]<=127||A[0]===169&&A[1]===254||A[0]===172&&A[1]>=16&&A[1]<=31||A[0]===192&&(A[1]===0||A[1]===2||A[1]===168)||A[0]===192&&A[1]===88&&A[2]===99||A[0]===198&&(A[1]===18||A[1]===19||A[1]===51)||A[0]===203&&A[1]===0&&A[2]===113)}if(kr.isIPv6(e)){let A=Ro(e);if(!A)return!1;let t=Ro("::ffff:0:0");return Bg(A,t,96)?Ig([...A.slice(12)].join(".")):Bg(A,Ro("2000::"),3)?![["2001::",23],["2001:db8::",32],["2001:10::",28],["2001:2::",48],["2002::",16],["3fff::",20]].some(([n,s])=>Bg(A,Ro(n),s)):!1}return!1}function FU(e){let A;try{A=new URL(String(e))}catch{return{ok:!1,error:`not a valid URL: ${String(e).slice(0,120)}`}}if(A.protocol!=="http:"&&A.protocol!=="https:")return{ok:!1,error:`refused protocol ${A.protocol} (only http/https)`};let t=A.hostname.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,"");if(kU.has(t)||t.endsWith(".localhost")||t.endsWith(".internal"))return{ok:!1,error:`refused internal host ${t}`};let r=kr.isIP(t);return r!==0&&!Ig(t)?{ok:!1,error:`refused private address ${t}`}:{ok:!0,url:A,host:t,isLiteralIp:r!==0}}async function id(e,{lookupFn:A=bU.promises.lookup}={}){let t=FU(e);if(!t.ok)return t;if(t.isLiteralIp)return{ok:!0,url:t.url};let r;try{r=await A(t.host,{all:!0,verbatim:!0})}catch{return{ok:!1,error:`refused: ${t.host} did not resolve`}}return!Array.isArray(r)||r.length===0||r.some(n=>!Ig(n.address))?{ok:!1,error:`refused: ${t.host} resolves to a non-public address`}:{ok:!0,url:t.url,addresses:r}}async function ad(){let e,A;try{let i=await Promise.resolve().then(()=>df(od(),1));e=i.Agent,A=i.fetch}catch{return null}if(typeof e!="function"||typeof A!="function")return null;let t=i=>String(i).toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,""),r=new Map,n=i=>(Array.isArray(i)?i:[i]).map(a=>typeof a=="string"?{address:a}:a).filter(a=>a&&a.address).map(a=>({address:a.address,family:a.family||(kr.isIPv6(a.address)?6:4)})),s=i=>{let a=t(i);if(kr.isIP(a))return[{address:a,family:kr.isIPv6(a)?6:4}];let c=r.get(a);if(!c||!c.length)throw new Error(`refused: unpinned host ${i} during pinned fetch`);return c},o=new e({connect:{lookup(i,a,c){let l;try{l=s(i)}catch(u){return c(u)}return a?.all?c(null,l):c(null,l[0].address,l[0].family)}}});return{dispatcher:o,fetch:(i,a={})=>A(i,{...a,dispatcher:o}),pin(i,a,c){r.set(t(i),n(typeof a=="string"?[{address:a,family:c}]:a))},resolve:s,async close(){try{await o.destroy()}catch{}}}}var kU,cd=MA(()=>{kU=new Set(["localhost","metadata.google.internal","metadata.goog"])});import{createHash as RU}from"node:crypto";function MU(e){let A=String(e||"").toLowerCase();return Ed.includes(A)||/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(A)}function LU(e){let A={};for(let[t,r]of Object.entries(e||{}))MU(t)||(A[t]=r);return A}function TU(e,A){if(!e)throw new Error(`HTTP redirect from ${A} missing Location`);let t=new URL(String(e),String(A));if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error(`HTTP redirect from ${A} used unsupported protocol ${t.protocol}`);return t.toString()}function xU(e,A){return new URL(String(e)).origin===new URL(String(A)).origin}function YU(e,A,t){let r={};for(let[a,c]of Object.entries(t||{}))r[a.toLowerCase()]=c;let n=Object.keys(r).filter(a=>/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(a)),o=[...new Set([...Ed,...n])].sort().map(a=>`${a}=${r[a]??""}`).join(`
46
- `),i=RU("sha256").update(o).digest("hex").slice(0,32);return`${e} ${A} ${i}`}function GU(e,A){let t=Number(A);return Number.isFinite(t)&&t>0?Math.min(t*1e3,ud):Math.min(250*2**e,ud)+Math.floor(Math.random()*100)}async function vU(e,{fetchImpl:A,method:t,headers:r,body:n,timeoutMs:s,lookupFn:o,realFetch:i}){let a=new AbortController,c=setTimeout(()=>a.abort(),s),l=null,u=A;try{let g=String(e),E={...r||{}};for(let Q=0;Q<=ld;Q+=1){let I=await u(g,{method:t,headers:E,body:n,signal:a.signal,redirect:"manual"}),C=await I.text(),B=null;if(C)try{B=JSON.parse(C)}catch{B=null}if(UU.has(I.status)){if(t!=="GET"&&t!=="HEAD"){let m=new Error(`HTTP ${I.status} ${t} ${g} redirected non-idempotent request`);throw m.status=I.status,m.body=B??C.slice(0,300),m}if(Q===ld)throw new Error(`HTTP redirect loop for ${e}`);let h=TU(I.headers?.get?.("location"),g);if(!xU(h,g)){let m=await id(h,o?{lookupFn:o}:{});if(!m.ok){let T=new Error(`HTTP redirect from ${g} ${m.error}`);throw T.status=I.status,T}E=LU(E),i&&m.addresses?.length&&(l||(l=await ad()),l&&(l.pin(new URL(h).hostname,m.addresses[0].address,m.addresses[0].family),u=l.fetch))}g=h;continue}if(!I.ok){let h=new Error(`HTTP ${I.status} ${t} ${g}`);throw h.status=I.status,h.retryAfter=I.headers?.get?.("retry-after")??null,h.body=B??C.slice(0,300),h}return B??C}throw new Error(`HTTP redirect loop for ${e}`)}finally{clearTimeout(c),l&&await l.close()}}async function ne(e,A={}){let t=A.fetchImpl||globalThis.fetch;if(typeof t!="function")throw new Error("fetch unavailable \u2014 pass opts.fetchImpl");let r=A.timeoutMs??12e3,n=(A.method||"GET").toUpperCase(),s={Accept:"application/json",...A.headers||{}},o=A.body;o!=null&&typeof o!="string"&&(s["Content-Type"]=s["Content-Type"]||"application/json",o=JSON.stringify(o));let i=Number.isInteger(A.retries)?Math.max(A.retries,0):NU,a=A.lookupFn,c=!A.fetchImpl,l=async()=>{let I;for(let C=0;C<=i;C++)try{return await vU(e,{fetchImpl:t,method:n,headers:s,body:o,timeoutMs:r,lookupFn:a,realFetch:c})}catch(B){I=B;let h=B?.status,y=B?.name==="AbortError",m=new Set([408,425,429]),T=h!=null?m.has(h)||SU.has(h)&&gd.has(n):!y&&gd.has(n);if(C===i||!T)throw B;await JU(GU(C,B?.retryAfter))}throw I};if(!(A.dedupe!==!1&&n==="GET"&&o==null))return l();let g=YU(n,e,s),E=Cg.get(g);if(E)return E;let Q=l().finally(()=>Cg.delete(g));return Cg.set(g,Q),Q}var SU,gd,NU,ud,Ed,UU,ld,Cg,JU,uA=MA(()=>{cd();SU=new Set([408,425,429,500,502,503,504]),gd=new Set(["GET","HEAD","OPTIONS","PUT","DELETE"]),NU=2,ud=4e3,Ed=["authorization","x-api-key","x-tensor-api-key","0x-api-key","api-key","cookie","proxy-authorization"],UU=new Set([301,302,303,307,308]),ld=3;Cg=new Map;JU=e=>new Promise(A=>setTimeout(A,e))});import{readFileSync as HU}from"node:fs";import{homedir as VU}from"node:os";import{join as So}from"node:path";function qU(){if(process.env.ORACLE_TEST_ISOLATE_SECRETS==="1"){let t=(process.env.ORACLE_EXEC_ENV_FILE||"").trim();return t?[t]:[]}let e=(process.env.ORACLE_EXEC_ENV_FILE||process.env.MAD_EXEC_ENV_FILE||"").trim(),A=VU();if(process.env.ORACLE_PUBLIC_DESKTOP==="1"){let t=(process.env.ORACLE_CONFIG_DIR||So(A,".config","oracle")).trim();return[e,So(t,"exec.env")].filter(Boolean)}return[e,So(A,".config","oracle","exec.env"),So(A,".config","mad-desk","exec.env")].filter(Boolean)}function Qd(e,A,t){let r=e??process.env[A]??process.env[t];if(!String(r||"").trim())for(let n of qU())try{let s=HU(n,"utf8"),o=s.match(new RegExp(`^${A}=(.*)$`,"m"))||s.match(new RegExp(`^${t}=(.*)$`,"m"));if(o&&(r=o[1].trim(),r))break}catch{}if(!String(r||"").trim())throw new Error(`${A} required for attestation. Set it in the environment, or place ${A}=<value> in ~/.config/oracle/exec.env`);return r}var Bd=MA(()=>{});var Id=MA(()=>{});import{createHash as OU,createHmac as hd,timingSafeEqual as WU}from"node:crypto";function Uo(e){return Array.isArray(e)?`[${e.map(Uo).join(",")}]`:e&&typeof e=="object"?`{${Object.keys(e).sort().map(A=>`${JSON.stringify(A)}:${Uo(e[A])}`).join(",")}}`:JSON.stringify(e??null)}function dd(e,{required:A=!1}={}){try{return Qd(e,"ORACLE_ROUTE_ATTESTATION_SECRET","MAD_ROUTE_ATTESTATION_SECRET")}catch(t){if(A)throw t;return null}}function dg(e){let{signature:A,...t}=e;return t}function fd(e,{secret:A}={}){let t=dd(A);return t?{...e,signature:hd("sha256",t).update(Uo(dg(e))).digest("hex")}:e}function PU(e){let A=String(e||"").toLowerCase();if(!/^0x[0-9a-f]+$/.test(A)||A.length<10||A.length%2!==0)throw new Error("auto-slippage calldata must be even-length hex with a selector");return OU("sha256").update(Buffer.from(A.slice(2),"hex")).digest("hex")}function Dt(e,{chainId:A,venue:t,data:r,secret:n}={}){if(!e||e.mode!=="auto")throw new Error("bounded auto-slippage guard required");if(Number(e.chainId)!==Number(A))throw new Error("auto-slippage guard chain mismatch");if(String(e.venue).toLowerCase()!==String(t||"").toLowerCase())throw new Error("auto-slippage guard venue mismatch");let s=dd(n);if(s){let E=hd("sha256",s).update(Uo(dg(e))).digest("hex");if(!_U(e.signature,E))throw new Error("auto-slippage guard signature mismatch \u2014 refusing to bind a guard this Oracle did not issue")}let o=Number(e.selectedBps),i=Number(e.capBps);if(!Number.isInteger(o)||o<0||o>No||!Number.isInteger(i)||i<0||i>No||o>i)throw new Error("auto-slippage guard bounds are invalid");let a=BigInt(e.quoteAmountOut??0),c=BigInt(e.minAmountOut??0);if(a<=0n||c<=0n)throw new Error("auto-slippage guard amounts must be positive");let l=a*BigInt(1e4-o),u=l/10000n;if(l%10000n!==0n&&(u+=1n),c<u)throw new Error("auto-slippage guard is under-protected relative to its quote");let g=KU(r);if(g!=null&&g!==c)throw new Error(`auto-slippage: calldata encodes floor ${g}, not the guard floor ${c} \u2014 refusing to bind`);return fd({...dg(e),calldataHash:PU(r)},{secret:n})}function _U(e,A){let t=Buffer.from(String(e??""),"utf8"),r=Buffer.from(String(A??""),"utf8");return t.length!==r.length||t.length===0?!1:WU(t,r)}function hg(e,A=0){let t=Number(e);return Number.isFinite(t)?t:A}function ZU(e){let A=e==null?No:Number(e);if(!Number.isInteger(A)||A<0)throw new Error("auto-slippage cap must be a non-negative integer bps value");return Math.min(A,No)}function RA({liquidityUsd:e,priceChange5m:A=0,quoteAgeMs:t=0,crossChain:r=!1,requestedCapBps:n}={}){let s=hg(e,0),o=s>0?s>=25e4?5:s>=1e5?10:s>=5e4?20:s>=1e4?40:70:r?30:10,i=Math.min(60,Math.abs(hg(A,0))*2),a=Math.min(40,Math.floor(Math.max(0,hg(t,0))/5e3)*5),c=Math.max(25,Math.ceil(20+o+i+a)),l=ZU(n);return{mode:"auto",requiredBps:c,selectedBps:Math.min(c,l),capBps:l,executable:c<=l}}function zU({chainId:e,venue:A,quoteAmountOut:t,liquidityUsd:r,priceChange5m:n=0,quoteAgeMs:s=0,crossChain:o=!1,requestedCapBps:i,quotedAtMs:a=Date.now(),ttlMs:c=Cd,secret:l}={}){let u=BigInt(t??0);if(u<=0n)throw new Error("auto-slippage guard requires positive quoteAmountOut");let g=RA({liquidityUsd:r,priceChange5m:n,quoteAgeMs:s,crossChain:o,requestedCapBps:i});if(!g.executable)throw new Error(`auto-slippage requires ${g.requiredBps} bps above hard/requested cap ${g.capBps}; route blocked`);let E=Number(a);if(!Number.isFinite(E))throw new Error("auto-slippage: quotedAtMs must be a finite number");let Q=Math.min(3e4,Math.max(1e3,Number(c)||Cd)),I=u*BigInt(1e4-g.selectedBps),C=I/10000n;if(I%10000n!==0n&&(C+=1n),C>u&&(C=u),u>0n&&C<=0n)throw new Error(`auto-slippage: quote ${u} is too small to express a ${g.selectedBps} bps floor without rounding to zero`);let B=Number((u-C)*10000n/(u===0n?1n:u));if(B>g.capBps)throw new Error(`auto-slippage: realised floor implies ${B} bps, above cap ${g.capBps} \u2014 refusing to issue a guard weaker than advertised`);return fd({mode:"auto",chainId:Number(e),venue:String(A||"unknown"),quoteAmountOut:u.toString(),minAmountOut:C.toString(),requiredBps:g.requiredBps,selectedBps:g.selectedBps,capBps:g.capBps,quotedAtMs:E,expiresAtMs:E+Q},{secret:l})}function KU(e){let A=String(e||"");if(!/^0x[0-9a-fA-F]+$/.test(A)||A.length<10||A.length%2!==0)return null;let t=A.slice(0,10).toLowerCase(),r=[];for(let s=10;s+64<=A.length;s+=64)r.push(A.slice(s,s+64));let n=s=>r[s]==null?null:BigInt("0x"+r[s]);switch(t){case"0x414bf389":return n(6);case"0x04e45aaf":return n(5);case"0xc04b8d59":{let s=n(0);if(s==null)return null;let o=Number(s)/32;return!Number.isInteger(o)||o<0?null:n(o+4)}case"0xb858183f":{let s=n(0);if(s==null)return null;let o=Number(s)/32;return!Number.isInteger(o)||o<0?null:n(o+3)}case"0xa026383e":return n(6);case"0x38ed1739":case"0x5c11d795":return n(1);case"0x7ff36ab5":case"0xb6f9de95":return n(0);case"0x18cbafe5":case"0x791ac947":return n(1);default:return null}}function le(e,{chainId:A,venue:t,amountOut:r,liquidityUsd:n,priceChange5m:s,crossChain:o,requestedCapBps:i,quotedAtMs:a=Date.now(),ttlMs:c}={}){let l=zU({chainId:A,venue:t,quoteAmountOut:r,liquidityUsd:n,priceChange5m:s,crossChain:o,requestedCapBps:i,quotedAtMs:a,ttlMs:c});return{...e,autoSlippage:l,amountOutMinimum:l.minAmountOut}}var No,Cd,SA=MA(()=>{Bd();Id();No=100,Cd=2e4});function pd(e){let A=String(e||"").trim();return/^0x[0-9a-fA-F]{40}$/.test(A)?A:bt}var bt,Mo=MA(()=>{bt="0x000000000000000000000000000000000000dEaD"});import{createHash as XU,createHmac as jU,timingSafeEqual as Kx}from"node:crypto";function fg(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(fg).join(",")}]`:`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${fg(e[t])}`).join(",")}}`}function wd(e){let A=String(e?.ORACLE_STAMP_HMAC_SECRET||"").trim();return A.length>=16?A:""}function md(e=process.env){return wd(process.env)||wd(e)}function tM(e){let{prepareHash:A,prepareMac:t,note:r,...n}=e||{};return n}function rM(e){let A=tM(e);return XU("sha256").update(fg(A)).digest("hex")}function nM(e,A=md()){return A?jU("sha256",A).update(String(e)).digest("hex"):""}function NA(e,{provider:A,kind:t,env:r=process.env,nowMs:n=Date.now(),expiresAtMs:s}={}){if(!e||typeof e!="object")throw new Error("stampPrepared: payload object required");let o=Object.prototype.hasOwnProperty.call(e,"oraclePrepared");if(o&&typeof e.oraclePrepared!="boolean")throw new Error("stampPrepared: oraclePrepared must be boolean");let i={...e,provider:e.provider||A,kind:e.kind||t,requiresUserSignature:e.requiresUserSignature!==!1,signingReady:!1,broadcastReady:!1,executionReady:!1,oraclePrepared:o?e.oraclePrepared:!0};if(!i.provider)throw new Error("stampPrepared: provider required");if(!i.kind)throw new Error("stampPrepared: kind required");let a=Number(n),c=s==null?a+eM:Number(s),l=c-a;if(!Number.isSafeInteger(a)||!Number.isSafeInteger(c)||l<=0||l>AM)throw new Error("stampPrepared: bounded preparedAt/expiresAt required");let g={...i,preparedAt:a,expiresAt:c,prepareVersion:$U},E=rM(g),Q=md(r),I=Q?nM(E,Q):void 0,C={...g,prepareHash:E};return I&&(C.prepareMac=I),C}var $U,eM,AM,UA=MA(()=>{$U=2,eM=300*1e3,AM=(()=>{let e=Number(process.env.ORACLE_PREPARE_HARD_MAX_AGE_MS);return Number.isFinite(e)&&e>0?e:1800*1e3})()});var Dg={};Cf(Dg,{ACROSS_API:()=>tf,HOP_API:()=>rf,RELAY_API:()=>nf,acrossHealth:()=>pL,acrossSuggestedFees:()=>sf,hopHealth:()=>wL,hopQuote:()=>of,relayHealth:()=>mL,relayPrepare:()=>yL,relayQuote:()=>yg});async function pL(e={}){try{return{ok:!0,estimatedFillTimeSec:(await sf({token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",destinationToken:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",originChainId:1,destinationChainId:42161,amount:"1000000000000000"},e)).estimatedFillTimeSec}}catch(A){return{ok:!1,error:String(A.message||A).slice(0,160)}}}async function sf(e={},A={}){let{token:t,destinationToken:r=t,originChainId:n,destinationChainId:s,amount:o}=e;if(!t||n==null||s==null||!o)throw new Error("acrossSuggestedFees requires token, originChainId, destinationChainId, amount");let i=new URLSearchParams({token:t,destinationToken:r,originChainId:String(n),destinationChainId:String(s),amount:String(o)}),a=(A.baseUrl||process.env.ACROSS_API_URL||tf).replace(/\/$/,"");return ne(`${a}/suggested-fees?${i}`,{fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??15e3})}async function wL(e={}){try{let A=await of({amount:"1000000000000000",token:"ETH",fromChain:"ethereum",toChain:"arbitrum",slippage:.5},e);return{ok:!0,estimatedRecieved:A.estimatedRecieved||A.estimatedReceived}}catch(A){return{ok:!1,error:String(A.message||A).slice(0,160)}}}async function of(e={},A={}){let{amount:t,token:r="ETH",fromChain:n="ethereum",toChain:s="arbitrum"}=e;if(!t)throw new Error("hopQuote requires amount");let o=e.slippage==null?void 0:Math.round(Number(e.slippage)*100),i=RA({liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:n!==s,requestedCapBps:e.maxSlippageBps??e.slippageBps??o});if(!i.executable)throw new Error(`hop: route requires ${i.requiredBps} bps above cap ${i.capBps}`);let a=new URLSearchParams({amount:String(t),token:r,fromChain:n,toChain:s,slippage:String(i.selectedBps/100)}),c=(A.baseUrl||process.env.HOP_API_URL||rf).replace(/\/$/,""),l=await ne(`${c}/quote?${a}`,{fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??15e3}),u=l?.estimatedRecieved||l?.estimatedReceived;return u?le(l,{chainId:Number(e.originChainId||e.chainId||fL[n]||0),venue:l?.tx?.to||"hop",amountOut:u,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:n!==s,requestedCapBps:e.maxSlippageBps??e.slippageBps??o}):{...l,autoSlippagePolicy:i}}async function mL(e={}){try{let A=await yg({user:bt,originChainId:1,destinationChainId:8453,originCurrency:"0x0000000000000000000000000000000000000000",destinationCurrency:"0x0000000000000000000000000000000000000000",amount:"1000000000000000",tradeType:"EXACT_INPUT"},e);return{ok:!0,hasSteps:Array.isArray(A.steps),stepCount:A.steps?.length||0}}catch(A){return{ok:!1,error:String(A.message||A).slice(0,160)}}}async function yg(e={},A={}){let{user:t=bt,originChainId:r,destinationChainId:n,originCurrency:s="0x0000000000000000000000000000000000000000",destinationCurrency:o="0x0000000000000000000000000000000000000000",amount:i,tradeType:a="EXACT_INPUT"}=e;if(r==null||n==null||!i)throw new Error("relayQuote requires originChainId, destinationChainId, amount");let c=RA({liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:Number(r)!==Number(n),requestedCapBps:e.maxSlippageBps??e.slippageBps});if(!c.executable)throw new Error(`relay: route requires ${c.requiredBps} bps above cap ${c.capBps}`);let l=(A.baseUrl||process.env.RELAY_API_URL||nf).replace(/\/$/,""),u=await ne(`${l}/quote`,{method:"POST",body:{user:t,originChainId:Number(r),destinationChainId:Number(n),originCurrency:s,destinationCurrency:o,amount:String(i),tradeType:a,slippageTolerance:String(c.selectedBps)},fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??2e4}),g=u?.details?.currencyOut?.amount;return!g||!/^\d+$/.test(String(g))?{...u,autoSlippagePolicy:c}:le(u,{chainId:Number(r),venue:u?.steps?.[0]?.items?.[0]?.data?.to||"relay",amountOut:g,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:Number(r)!==Number(n),requestedCapBps:e.maxSlippageBps??e.slippageBps})}async function yL(e={},A={}){let t=await yg(e,A),r=Number(e.originChainId),n=(t.steps||[]).flatMap(i=>(i.items||[]).filter(a=>a?.data?.to&&a?.data?.data).map(a=>({stepId:i.id,...a.data})));if(!n.length)throw new Error("relay: quote returned no executable transaction items");let s=String(t?.autoSlippage?.venue||"").toLowerCase();if(n.some(i=>String(i.to).toLowerCase()!==s))throw new Error("relay: route includes a separate approval/transaction that is not yet safely bound");let o=n.map(i=>({chainId:r,from:i.from||e.user,to:i.to,data:i.data,value:i.value??"0x0",...i.gasLimit!=null||i.gas!=null?{gasLimit:i.gasLimit??i.gas}:{},slippageGuard:Dt(t.autoSlippage,{chainId:r,venue:i.to,data:i.data})}));return NA({provider:"relay",calldataReady:!0,requiresUserSignature:!0,signingReady:!1,broadcastReady:!1,chainId:r,quote:t,autoSlippage:t.autoSlippage,transactions:o},{provider:"relay",kind:"relay-tx"})}var tf,rf,nf,fL,bg=MA(()=>{uA();SA();Mo();UA();tf="https://across.to/api",rf="https://api.hop.exchange/v1",nf="https://api.relay.link",fL={ethereum:1,optimism:10,bsc:56,polygon:137,arbitrum:42161,avalanche:43114,base:8453}});var NL=Object.freeze(["blockNumber","nativeBalance","tokenBalance","resolveToken","resolvePools","scanBlocks","scoreRisk","quote","sellSimulation","prepareUnsignedTx"]),UL=Object.freeze({LIVE:"LIVE",CACHED:"CACHED",STALE:"STALE",UNKNOWN:"UNKNOWN",UNAVAILABLE:"UNAVAILABLE"}),ML=Object.freeze({PASS:"PASS",CAUTION:"CAUTION",FAIL:"FAIL",UNKNOWN:"UNKNOWN"});var eA=Object.freeze({FULL:"FULL",NO_GAS:"NO_GAS",FAILED:"FAILED"}),Ng={1:"coingecko:ethereum",10:"coingecko:ethereum",56:"coingecko:binancecoin",137:"coingecko:matic-network",8453:"coingecko:ethereum",42161:"coingecko:ethereum",43114:"coingecko:avalanche-2",999:"coingecko:ethereum"},Rr=e=>{try{return e==null||e===""?null:BigInt(String(e).split(".")[0])}catch{return null}};function Sg(e){let{source:A,amountOut:t,minOut:r=null,gasUsd:n=null,feeUsd:s=null,oracleFeeBps:o=0,estimatedGas:i=null,liquidityUsd:a=null,error:c=null,executionReady:l=!1,meta:u={}}=e||{};if(c||t==null)return{source:A,quality:eA.FAILED,amountOut:null,error:c||"no amountOut returned"};let g=Rr(t);if(g==null||g<=0n)return{source:A,quality:eA.FAILED,amountOut:null,error:"non-positive amountOut"};let E=Number(o);return{source:A,quality:n==null?eA.NO_GAS:eA.FULL,amountOut:g.toString(),minOut:Rr(r)?.toString()??null,gasUsd:n,feeUsd:s,oracleFeeBps:Number.isFinite(E)&&E>0?Math.floor(E):0,estimatedGas:i==null?null:String(i),liquidityUsd:a==null?null:Number(a),executionReady:l,meta:u}}async function Ug(e,A,{divisor:t=1000n}={}){let r=Rr(A);if(r==null||r<=0n)return null;let n=r/t>0n?r/t:1n;if(n>=r)return null;let s,o;try{[s,o]=await Promise.all([e(n),e(r)])}catch{return null}let i=Rr(s),a=Rr(o);if(i==null||a==null||i<=0n)return null;let c=Number(i)/Number(n),l=Number(a)/Number(r);return!Number.isFinite(c)||!Number.isFinite(l)||c<=0?null:{impactPct:(1-l/c)*100,probeAmountIn:n.toString(),probeAmountOut:i.toString(),fullAmountOut:a.toString()}}function Mg(e,A,{maxImpactPct:t=25}={}){let r=[],n=[],s=(e.routes??[]).filter(i=>{let a=A?.[i.source];return a?a.impactPct>t?(r.push({source:i.source,impactPct:Number(a.impactPct.toFixed(2)),reason:`price impact ${a.impactPct.toFixed(1)}% exceeds ${t}% ceiling -- the venue cannot absorb this size near the quoted price`}),!1):!0:(n.push(i.source),!0)}),o=[...e.warnings??[]];return r.length&&o.push(`dropped ${r.length} route(s) on price impact: `+r.map(i=>`${i.source} (${i.impactPct}%)`).join(", ")),n.length&&o.push(`price impact NOT measured for: ${n.join(", ")}. These are unproven against thin liquidity, not proven safe.`),{...e,routes:s,best:s[0]??null,impactRejected:r,impactUnmeasured:n,warnings:o}}function Oo(e,{destPriceUsd:A=null,destDecimals:t=null,liquidityFirst:r=!0,liquidityBandBps:n=50,gasPriceWei:s=null,nativePriceUsd:o=null}={}){let i=e.filter(M=>M.quality!==eA.FAILED),a=e.filter(M=>M.quality===eA.FAILED),c=A!=null&&A>0&&t!=null&&t>=0,l=Number(s),u=Number(o),g=Number.isFinite(l)&&l>0&&Number.isFinite(u)&&u>0,E=i.map(M=>{let V=BigInt(M.amountOut),De=0n,Be=!1,se=!1,xe=BigInt(M.oracleFeeBps??0),QA=xe>0n?V*xe/10000n:0n;if(c){let Un=M.gasUsd,Vo=Number(M.meta?.gasUnits??M.estimatedGas);if(Un==null&&g&&Number.isFinite(Vo)&&Vo>0){let jA=Vo*l/1e18*u;Number.isFinite(jA)&&jA>=0&&(Un=jA,se=!0)}let Rg=(Un??0)+(M.feeUsd??0);if(Rg>0){let jA=Rg/A*10**t;Number.isFinite(jA)&&jA>=0&&(De=BigInt(Math.floor(jA)),Be=!0)}else Un===0&&(Be=!0)}let Rt=De+QA,St=V>Rt?V-Rt:0n;return{...M,grossOut:V.toString(),netOut:St.toString(),costInDest:De.toString(),oracleFeeInDest:QA.toString(),costAccounted:Be,gasEstimated:se}}),Q=Number(n)>0?Number(n):0,I=E.reduce((M,V)=>BigInt(V.netOut)>M?BigInt(V.netOut):M,0n),C=M=>I>0n?Number((I-BigInt(M))*10000n/I):0,B=[],h=E.slice().sort((M,V)=>BigInt(V.netOut)>BigInt(M.netOut)?1:-1)[0]??null;E.sort((M,V)=>{let De=C(M.netOut)<=Q?0:1,Be=C(V.netOut)<=Q?0:1;if(r&&Q>0&&De!==Be)return De-Be;if(r&&Q>0){let se=M.liquidityUsd??-1,xe=V.liquidityUsd??-1;if(se!==xe)return xe-se}return BigInt(V.netOut)>BigInt(M.netOut)?1:-1}),r&&Q>0&&h&&E[0]&&E[0].source!==h.source&&B.push(`liquidity-first: chose ${E[0].source} (liquidity $${E[0].liquidityUsd??"unknown"}) over best-price ${h.source} within ${Q} bps`);let y=E.filter(M=>!M.costAccounted).map(M=>M.source);c?y.length&&B.push(`gas not reported by: ${y.join(", ")}. These are ranked on gross output and may be overstated relative to gas-measured routes.`):B.push("destination price/decimals unavailable: ranked on GROSS output. Gas is not included, so a cheap-looking route may cost more to execute.");let m=E[0];if(c&&m&&m.costAccounted===!1){let M=E.find(V=>V.costAccounted&&C(V.netOut)<=Q);M&&B.push(`winner ${m.source} has UNMEASURED gas; gas-measured ${M.source} is within ${Q} bps and may net more once ${m.source}'s real gas is paid \u2014 prefer it if unsure.`)}let T=E.filter(M=>M.gasEstimated).map(M=>M.source);T.length&&B.push(`gas ESTIMATED (from gas units x current gas price, not measured) for: ${T.join(", ")}. Net includes this estimate so the ranking is gas-inclusive, but the on-chain gas may differ.`);let _=null,Z=null;if(E.length>=2&&E[0].costAccounted&&E[1].costAccounted){let M=BigInt(E[0].netOut),V=BigInt(E[1].netOut);V>0n&&(_=Number((M-V)*10000n/V),Z=`${E[0].source} vs ${E[1].source}`)}return{best:E[0]??null,routes:E,failed:a,improvementBps:_,spreadBasis:Z,rankedOn:c?"net-of-cost":"gross",warnings:B}}async function Mn(e,{timeoutMs:A=12e3}={}){let t=(n,s)=>Promise.race([n,new Promise((o,i)=>setTimeout(()=>i(new Error(`${s}: timeout`)),A))]);return(await Promise.allSettled(e.map(n=>t(Promise.resolve().then(n.run),n.source)))).map((n,s)=>{let o=e[s].source;return n.status==="rejected"?Sg({source:o,error:String(n.reason?.message||n.reason)}):Sg({source:o,...n.value})})}uA();SA();Mo();UA();import{existsSync as EM,readFileSync as QM,lstatSync as BM}from"node:fs";import{homedir as Dd}from"node:os";import{join as pg}from"node:path";import{Contract as sM,JsonRpcProvider as oM}from"ethers";var iM="0x62FCFAf7573AD8B41a0FBF347AfEb85e06599A75",aM=999,cM="https://rpc.hyperliquid.xyz/evm",gM=["function balanceOf(address owner) view returns (uint256)"],uM=/^0x[a-fA-F0-9]{40}$/;function lM(e){return uM.test(String(e||""))}async function yd(e,{contract:A=iM,rpc:t=cM,chainId:r=aM,balanceOf:n}={}){if(!lM(e))throw new Error("invalid-address");if(n)return BigInt(await n(e));let s=new oM(t,r,{staticNetwork:!0}),o=new sM(A,gM,s);return BigInt(await o.balanceOf(e))}var IM=100,CM=5,bd=Object.freeze({swap:5,bridge:5,perps:0,nft:0});function hM(e){let A=String(e||"swap").toLowerCase();return Object.prototype.hasOwnProperty.call(bd,A)?bd[A]:CM}var dM="ORACLE_INTEGRATOR_FEE_BPS",fM="ORACLE_INTEGRATOR_FEE_RECIPIENT",pM="ORACLE_INTEGRATOR_ID",kd="ORACLE_INTEGRATOR_FEE_RECIPIENT_PIN",wM="oracle";function mM(e=process.env){if(process.env.ORACLE_TEST_ISOLATE_SECRETS==="1"){if(e[kd])return String(e[kd]);let A=e.ORACLE_CONFIG_DIR||pg(Dd(),".config","oracle");return pg(A,"fee-recipient")}return pg(Dd(),".config","oracle","fee-recipient")}function yM(e=process.env){try{let A=mM(e);if(!EM(A)||BM(A).isSymbolicLink())return"";let t=QM(A,"utf8").trim().toLowerCase();return/^0x[a-f0-9]{40}$/.test(t)?t:""}catch{return""}}function DM(e,{fallback:A=0}={}){if(e==null)return A;if(String(e).trim()==="")return 0;let t=Number(e);return!Number.isFinite(t)||t<=0?0:Math.min(Math.floor(t),IM)}function bM({env:e=process.env,action:A="swap",admin:t=!1}={}){let r=String(e[fM]||"").trim(),n=String(e[pM]||wM).trim();if(t===!0)return{bps:0,recipient:"",integrator:n,action:A,applies:!1,reason:"admin-oracle"};let s=hM(A),o=DM(e[dM],{fallback:r?s:0}),i=Math.min(o,s);if(!i)return{bps:0,recipient:"",integrator:n,action:A,applies:!1,reason:"not-configured"};if(!/^0x[a-fA-F0-9]{40}$/.test(r))return{bps:0,recipient:"",integrator:n,action:A,applies:!1,reason:"no-recipient"};let a=yM(e);return!a||a!==r.toLowerCase()?{bps:0,recipient:"",integrator:n,action:A,applies:!1,reason:"recipient-not-pinned"}:{bps:i,recipient:r,integrator:n,action:A,applies:!0,reason:"configured"}}async function Lo({wallet:e,env:A=process.env,action:t="swap",holderCheck:r={},admin:n=!1}={}){let s=bM({env:A,action:t,admin:n});if(n===!0)return{...s,holderVerificationStatus:"admin-oracle"};let o=String(e||"").trim().toLowerCase();if(!/^0x[a-f0-9]{40}$/.test(o))return{...s,holderVerificationStatus:"wallet-required"};try{return BigInt(await yd(o,r))>0n?{...s,bps:0,applies:!1,reason:"locals-only-holder",holderVerificationStatus:"holder"}:{...s,holderVerificationStatus:"non-holder"}}catch{return{...s,holderVerificationStatus:"unavailable"}}}function Fd(e){return e?.applies?`Oracle routing fee ${e.bps} bps (${(e.bps/100).toFixed(2)}%) to ${e.recipient}.`:e?.reason==="admin-oracle"?"No Oracle fee (admin Oracle).":e?.reason==="locals-only-holder"?"No Oracle fee (Locals Only holder).":"No Oracle fee."}function Rd(e){return e?.applies?{integrator:e.integrator,fee:String(e.bps/1e4)}:{}}function Sd(e){return e?.applies?{partner:e.integrator,partnerFeeBps:String(e.bps),partnerAddress:e.recipient}:{}}var kM="https://li.quest/v1";function FM(e={}){return(e.baseUrl||process.env.LIFI_API_URL||kM).replace(/\/$/,"")}var RM="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";async function wg(e={},A={}){let{fromChain:t,toChain:r=t,fromToken:n=RM,toToken:s,fromAmount:o,fromAddress:i=bt}=e;if(t==null||!s||!o)throw new Error("lifiQuote requires fromChain, toToken, fromAmount");let a=new URLSearchParams({fromChain:String(t),toChain:String(r),fromToken:n,toToken:s,fromAmount:String(o),fromAddress:i}),c=RA({liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:Number(r)!==Number(t),requestedCapBps:e.maxSlippageBps??e.slippageBps});if(!c.executable)throw new Error(`lifi: route requires ${c.requiredBps} bps above cap ${c.capBps}`);a.set("slippage",String(c.selectedBps/1e4));let l=await Lo({wallet:e.fromAddress,env:A.env,action:e.feeAction||"swap",holderCheck:A.holderCheck});for(let[C,B]of Object.entries(Rd(l)))a.set(C,B);let u=await ne(`${FM(A)}/quote?${a}`,{fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??2e4}),g=u?.estimate?.toAmount||u?.toAmount;if(!g)return{...u,autoSlippagePolicy:c,oracleFee:l};let E=u?.transactionRequest?.to||u?.estimate?.approvalAddress||"lifi",Q=le(u,{chainId:Number(t),venue:E,amountOut:g,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:Number(r)!==Number(t),requestedCapBps:e.maxSlippageBps??e.slippageBps}),I=u?.estimate?.toAmountMin||u?.toAmountMin;if(I!=null&&BigInt(I)<BigInt(Q.amountOutMinimum))throw new Error("lifi: provider transaction is under-protected versus bounded auto-slippage floor");return{...Q,oracleFee:l}}uA();SA();UA();var SM="https://api.paraswap.io",NM=(e={})=>(e.baseUrl||process.env.PARASWAP_API_URL||SM).replace(/\/$/,"");function Nd(e,A){let t=String(e||"");if(!/^0x[0-9a-fA-F]{40}$/.test(t))throw new Error(`${A} must be a 20-byte token address`);return t.toLowerCase()}async function Ud(e={},A={}){let t=Number(e.chainId||e.network||1);if(e.amount==null)throw new Error("amount required");let r=new URLSearchParams({srcToken:Nd(e.srcToken,"srcToken"),destToken:Nd(e.destToken,"destToken"),amount:String(e.amount),srcDecimals:String(Number(e.srcDecimals)),destDecimals:String(Number(e.destDecimals)),side:String(e.side||"SELL").toUpperCase(),network:String(t),version:String(e.version||"6.2")});e.includeDEXS&&r.set("includeDEXS",String(e.includeDEXS)),e.excludeDEXS&&r.set("excludeDEXS",String(e.excludeDEXS));let n=await Lo({wallet:e.userAddress||e.fromAddress,env:A.env,action:e.feeAction||"swap",holderCheck:A.holderCheck});for(let[i,a]of Object.entries(Sd(n)))r.set(i,a);let s=await ne(`${NM(A)}/prices?${r}`,{fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??2e4}),o=s?.priceRoute?.destAmount;return o?{...le(s,{chainId:t,venue:s?.priceRoute?.contractAddress||"paraswap-quote",amountOut:o,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,quoteAgeMs:0,requestedCapBps:e.maxSlippageBps??e.slippageBps}),executionReady:!1,executionBlocker:"call prepare to bind the price route to a validated transaction",oracleFee:n}:{...s,executionReady:!1,oracleFee:n}}uA();SA();var Md="ORACLE_ALLOW_CUSTOM_PROVIDER_URL";function To({provider:e,defaultUrl:A,hosts:t=[],url:r,strict:n=!1}){let o=(String(r??"").trim()||String(A)).replace(/\/$/,"");if(o===String(A).replace(/\/$/,""))return{baseUrl:o,trusted:!0,host:Ld(A)};let i;try{i=new URL(o)}catch{throw new Error(`${e}: baseUrl must be an absolute http(s) URL`)}if(i.protocol!=="http:"&&i.protocol!=="https:")throw new Error(`${e}: baseUrl must be an absolute http(s) URL`);let a=i.host;if(!a)throw new Error(`${e}: baseUrl must be an absolute http(s) URL`);if(new Set([Ld(A),...t]).has(a)){let l=/^(127\.0\.0\.1|localhost|\[::1\])(:\d+)?$/i.test(a);return i.protocol==="http:"&&!l?{baseUrl:o,trusted:!1,host:a,reason:"plaintext http downgrade"}:{baseUrl:o,trusted:!0,host:a}}if(String(process.env[Md]||"")==="1")return{baseUrl:o,trusted:!1,host:a};if(n)throw new Error(`${e}: refusing to call non-allowlisted host ${a} (set ${Md}=1 to permit it)`);return{baseUrl:o,trusted:!1,host:a}}function Ld(e){let A=new URL(String(e));if(A.protocol!=="http:"&&A.protocol!=="https:")throw new Error("unsupported protocol");return A.host}function xo(e,A,t){let r={...e};if(!t)return r;for(let[n,s]of Object.entries(A||{}))s&&(r[n]=s);return r}UA();var UM="https://api.0x.org";function Td(e={}){return To({provider:"zerox",defaultUrl:UM,hosts:["api.0x.org"],url:e.baseUrl||process.env.ZEROX_API_URL})}function MM(e={}){return Td(e).baseUrl}function xd(e={}){return e.apiKey||process.env.ZEROX_API_KEY||process.env.OX_API_KEY||process.env["0X_API_KEY"]||""}function LM(e={}){return xo({"0x-version":"v2",accept:"application/json"},{"0x-api-key":xd(e)},Td(e).trusted)}async function Yd(e={},A={}){if(!xd(A))throw new Error("ZEROX_API_KEY required for 0x");let{chainId:t=8453,sellToken:r,buyToken:n,sellAmount:s,taker:o}=e;if(!r||!n||!s)throw new Error("zeroxQuote requires sellToken, buyToken, sellAmount");let i=RA({liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,requestedCapBps:e.maxSlippageBps??e.slippageBps});if(!i.executable)throw new Error(`0x: route requires ${i.requiredBps} bps above cap ${i.capBps}`);let a=new URLSearchParams({chainId:String(t),sellToken:r,buyToken:n,sellAmount:String(s),slippageBps:String(i.selectedBps)});o&&a.set("taker",o);let c=await ne(`${MM(A)}/swap/allowance-holder/quote?${a}`,{headers:LM(A),fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??15e3}),l=c?.buyAmount||c?.grossBuyAmount;return l?le(c,{chainId:t,venue:c?.transaction?.to||c?.to||"0x",amountOut:l,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,requestedCapBps:e.maxSlippageBps??e.slippageBps}):{...c,autoSlippagePolicy:i}}uA();SA();UA();var TM="https://api.1inch.dev/swap/v6.0";function Gd(e={}){return To({provider:"oneinch",defaultUrl:TM,hosts:["api.1inch.dev"],url:e.baseUrl||process.env.ONEINCH_API_URL})}function xM(e={}){return Gd(e).baseUrl}function Jd(e={}){return e.apiKey||process.env.ONEINCH_API_KEY||process.env.ONE_INCH_API_KEY||""}function YM(e={}){let A=Jd(e);return xo({accept:"application/json"},{Authorization:A?`Bearer ${A}`:""},Gd(e).trusted)}async function vd(e={},A={}){if(!Jd(A))throw new Error("ONEINCH_API_KEY required for 1inch");let t=Number(e.chainId??1),{src:r,dst:n,amount:s}=e;if(!r||!n||!s)throw new Error("oneinchQuote requires src, dst, amount");let o=new URLSearchParams({src:r,dst:n,amount:String(s)}),i=await ne(`${xM(A)}/${t}/quote?${o}`,{headers:YM(A),fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??15e3});return i?.dstAmount?le(i,{chainId:t,venue:"1inch-quote",amountOut:i.dstAmount,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,requestedCapBps:e.maxSlippageBps??e.slippageBps}):i}uA();SA();import{TypedDataEncoder as U2,getAddress as M2,isAddress as L2}from"ethers";var F2=Object.freeze({READ:"read",PREPARE:"prepare",EXECUTE:"execute",AUTONOMOUS:"autonomous"});Mo();UA();var GM={1:"https://api.cow.fi/mainnet/api/v1",100:"https://api.cow.fi/xdai/api/v1",42161:"https://api.cow.fi/arbitrum_one/api/v1",8453:"https://api.cow.fi/base/api/v1"},H2=Object.freeze({1:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",100:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",42161:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",8453:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41"}),V2=Object.freeze({1:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110",100:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110",42161:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110",8453:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"}),Hd={1:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",8453:"0x4200000000000000000000000000000000000006",42161:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},JM={1:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",8453:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",42161:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},q2=Object.freeze({Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}),O2=Object.freeze({OrderCancellations:[{name:"orderUids",type:"bytes[]"}]});function vM(e,A={}){if(A.baseUrl)return A.baseUrl.replace(/\/$/,"");let t=GM[Number(e)];if(!t)throw new Error(`cowswap: unsupported chainId ${e}`);return t}async function Vd(e={},A={}){let t=Number(e.chainId??1),r=pd(e.from||e.owner),n=e.sellToken||Hd[t],s=e.buyToken||JM[t],o=String(e.sellAmountBeforeFee||e.sellAmount||"0");if(!n||!s||o==="0")throw new Error("cowQuote requires sellToken, buyToken, sellAmountBeforeFee");if(/eeeeeeee|native|^eth$/i.test(n)&&(n=Hd[t],!n))throw new Error("no WETH mapping for chain");let i={sellToken:n,buyToken:s,from:r,receiver:e.receiver||r,sellAmountBeforeFee:o,kind:e.kind||"sell",signingScheme:e.signingScheme||"eip1271"},a=await ne(`${vM(t,A)}/quote`,{method:"POST",body:i,fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??15e3}),c=a?.quote?.buyAmount||a?.buyAmount;return c?le(a,{chainId:t,venue:"cowswap-order",amountOut:c,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,requestedCapBps:e.maxSlippageBps??e.slippageBps}):a}import{Interface as zd,getAddress as Go,isAddress as eL}from"ethers";uA();var qd={robinhood:{chainId:4663,name:"Robinhood Chain",rpcEnv:["RH_CHAIN_RPC"],evm:!0},ethereum:{chainId:1,name:"Ethereum",rpcEnv:["ETH_RPC_URL","ETHEREUM_RPC_URL","MAINNET_RPC_URL"],evm:!0},polygon:{chainId:137,name:"Polygon",rpcEnv:["POLYGON_RPC_URL","POLYGON_RPC"],evm:!0},arbitrum:{chainId:42161,name:"Arbitrum One",rpcEnv:["ARBITRUM_RPC_URL","ARB_RPC_URL"],evm:!0},base:{chainId:8453,name:"Base",rpcEnv:["BASE_RPC_URL"],evm:!0},hyperevm:{chainId:999,name:"HyperEVM",rpcEnv:["HYPEREVM_RPC_URL","HYPER_EVM_RPC"],evm:!0},bsc:{chainId:56,name:"BNB Smart Chain",rpcEnv:["BSC_RPC_URL","BNB_RPC_URL"],evm:!0},avalanche:{chainId:43114,name:"Avalanche C-Chain",rpcEnv:["AVALANCHE_RPC_URL","AVAX_RPC_URL"],evm:!0},optimism:{chainId:10,name:"OP Mainnet",rpcEnv:["OPTIMISM_RPC_URL","OP_RPC_URL"],evm:!0},abstract:{chainId:2741,name:"Abstract",rpcEnv:["ABSTRACT_RPC_URL","ABS_RPC_URL"],evm:!0},stable:{chainId:988,name:"Stable Mainnet",rpcEnv:["STABLE_RPC_URL","STABLE_RPC"],evm:!0}},HM=new Map(Object.values(qd).map(e=>[e.chainId,e]));function Od(e){return HM.get(Number(e))||null}function Wd(e,A=process.env){let t=Od(e);if(!t)return null;for(let r of t.rpcEnv){let n=(A[r]||"").trim();if(n)return n}return null}import{Interface as VM,getAddress as X2}from"ethers";var j2=new VM(["function allowance(address owner,address spender) view returns (uint256)","function balanceOf(address account) view returns (uint256)"]);var qM={1:"https://ethereum.publicnode.com",137:"https://polygon-bor-rpc.publicnode.com",42161:"https://arbitrum-one-rpc.publicnode.com",8453:"https://base-rpc.publicnode.com",10:"https://optimism-rpc.publicnode.com",988:"https://rpc.stable.xyz",56:"https://bsc-rpc.publicnode.com",43114:"https://avalanche-c-chain-rpc.publicnode.com",999:"https://rpc.hyperliquid.xyz/evm",2741:"https://api.mainnet.abs.xyz",4663:"https://rpc.mainnet.chain.robinhood.com"};function OM(e,{rpcUrl:A,env:t=process.env}={}){if(A)return A;let r=Wd(e,t);return r||qM[Number(e)]||null}var WM=/^(?:eth_(?:call|blocknumber|chainid|get[a-z0-9]+|feehistory|gasprice|maxpriorityfeepergas|syncing|protocolversion|estimategas|createaccesslist)|net_(?:version|listening|peercount)|web3_(?:clientversion|sha3))$/;function PM(e){let A=String(e||""),t=A.toLowerCase();if(A!==A.trim()||!/^[a-zA-Z0-9_]+$/.test(A)||!WM.test(t))throw new Error(`evm-rpc: ${A} refused \u2014 @oracle-agent/oracle is prepare-only (read RPC only; no broadcast/sign)`);return t}async function Nn(e,A,t=[],r={}){let n=String(A||"");PM(n);let s=OM(e,r);if(!s)throw new Error(`No RPC URL for chainId ${e} (set env from chain registry rpcEnv or pass rpcUrl)`);let i=await ne(s,{method:"POST",body:{jsonrpc:"2.0",id:1,method:A,params:t},fetchImpl:r.fetchImpl,timeoutMs:r.timeoutMs??12e3});if(i?.error){let a=new Error(i.error.message||JSON.stringify(i.error));throw a.code=i.error.code,a}return i.result}async function Pd(e,A={}){let t=await Nn(e,"eth_gasPrice",[],A);if(t==null)return null;try{return BigInt(t)}catch{return null}}uA();var _M="https://api.dexscreener.com",ZM=Object.freeze({1:"ethereum",10:"optimism",56:"bsc",137:"polygon",8453:"base",42161:"arbitrum",43114:"avalanche",999:"hyperevm",4663:"robinhood"}),$e=e=>String(e??"").toLowerCase(),zM=e=>Array.isArray(e)?e:e==null?[]:[e];function KM(e,A,t){let r=$e(A),n=$e(t),s=$e(e?.baseToken?.address),o=$e(e?.quoteToken?.address);return s===r&&o===n||s===n&&o===r}function XM(e){let A=Number(e?.liquidity?.usd);return Number.isFinite(A)&&A>=0?A:null}function jM(e={}){return(e.baseUrl||process.env.DEXSCREENER_API_URL||_M).replace(/\/$/,"")}async function $M(e,A={}){if(!e)throw new Error("tokenAddress required");return ne(`${jM(A)}/latest/dex/tokens/${e}`,{fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??12e3})}async function Yo({chainId:e,tokenA:A,tokenB:t,dexIds:r=[]}={},n={}){if(e==null||!A||!t)throw new Error("chainId, tokenA, and tokenB required");let s=$e(ZM[Number(e)]||e),o=new Set(zM(r).filter(Boolean).map($e)),i=[...new Set([A,t].map(g=>String(g)).filter(Boolean))],a=await Promise.allSettled(i.map(g=>$M(g,{...n,baseUrl:n.dexscreenerBaseUrl,timeoutMs:n.dexscreenerTimeoutMs??Math.min(Number(n.timeoutMs??4e3),4e3)}))),c=new Set,l=[];for(let g of a)if(g.status==="fulfilled")for(let E of g.value?.pairs||g.value?.data?.pairs||[]){let Q=`${$e(E?.chainId)}:${$e(E?.dexId)}:${$e(E?.pairAddress)}`;c.has(Q)||(c.add(Q),l.push(E))}return l.filter(g=>$e(g?.chainId)===s).filter(g=>KM(g,A,t)).filter(g=>!o.size||o.has($e(g?.dexId))).map(g=>({pairAddress:g.pairAddress??null,dexId:g.dexId??null,chainId:g.chainId??null,liquidityUsd:XM(g),pairCreatedAt:g.pairCreatedAt??null})).filter(g=>g.liquidityUsd!=null).sort((g,E)=>E.liquidityUsd-g.liquidityUsd)[0]??null}SA();UA();var kt={1:{name:"ethereum",quoter:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",router:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},8453:{name:"base",quoter:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",router:"0x2626664c2603336E57B271c5C0b26F421741e481",weth:"0x4200000000000000000000000000000000000006",usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},42161:{name:"arbitrum",quoter:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",router:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},4663:{name:"robinhood",quoter:"0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7",router:"0xcaf681a66d020601342297493863e78c959e5cb2",weth:"0x0bd7d308f8e1639fab988df18a8011f41eacad73",usdc:"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168"},999:{name:"hyperevm",weth:"0x5555555555555555555555555555555555555555",usdc:"0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb"},10:{name:"optimism",quoter:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",router:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",weth:"0x4200000000000000000000000000000000000006",usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"},56:{name:"bsc",quoter:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",router:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2",weth:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",usdc:"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"},137:{name:"polygon",quoter:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",router:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",weth:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"},43114:{name:"avalanche",quoter:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",router:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE",weth:"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",usdc:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E"}},AL=[100,500,3e3,1e4],_d=new zd(["function quoteExactInputSingle((address tokenIn, address tokenOut, uint256 amountIn, uint24 fee, uint160 sqrtPriceLimitX96) params) returns (uint256 amountOut, uint160 sqrtPriceX96After, uint32 initializedTicksCrossed, uint256 gasEstimate)","function quoteExactInput(bytes path, uint256 amountIn) returns (uint256 amountOut, uint160[] sqrtPriceX96AfterList, uint32[] initializedTicksCrossedList, uint256 gasEstimate)"]),iY=new zd(["function exactInputSingle((address tokenIn,address tokenOut,uint24 fee,address recipient,uint256 amountIn,uint256 amountOutMinimum,uint160 sqrtPriceLimitX96) params) payable returns (uint256 amountOut)","function multicall(uint256 deadline,bytes[] data) payable returns (bytes[] results)"]),tL="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",rL="0x0000000000000000000000000000000000000000",mg=[100,500,2500,1e4],nL={56:{pancakeswap:{name:"pancakeswap",quoter:"0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997",router:"0x13f4EA83D0bd40E75C8222255bc855a974568Dd4",feeTiers:mg}},8453:{pancakeswap:{name:"pancakeswap",quoter:"0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997",router:"0x13f4EA83D0bd40E75C8222255bc855a974568Dd4",feeTiers:mg}},42161:{pancakeswap:{name:"pancakeswap",quoter:"0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997",router:"0x13f4EA83D0bd40E75C8222255bc855a974568Dd4",feeTiers:mg}},999:{hyperswap:{name:"hyperswap",quoter:"0x03A918028f22D9E1473B7959C927AD7425A45C7C",router:"0x4E2960a8cd19B467b82d26D83fAcb0fAE26b094D"}}};function sL(e,A){let t=Number(e),r=kt[t];if(!r)throw new Error(`uniswap-v3: unsupported chainId ${e} (supported: ${Object.keys(kt).join(", ")})`);let n=nL[t]||{};if(!A){if(!r.quoter||!r.router){let a=Object.keys(n).join(", ")||"none registered";throw new Error(`uniswap-v3: chain ${t} (${r.name}) has no canonical Uniswap v3 deployment -- name a venue explicitly (known: ${a})`)}return{chainId:t,venue:r.name,...r}}let s=String(A).toLowerCase();if(s===r.name&&r.quoter&&r.router)return{chainId:t,venue:r.name,...r};let o=n,i=o[s];if(!i){let a=[...r.quoter&&r.router?[r.name]:[],...Object.keys(o)].join(", ");throw new Error(`uniswap-v3: unknown venue "${A}" on chain ${t} (known: ${a})`)}return{chainId:t,venue:s,...r,quoter:i.quoter,router:i.router,feeTiers:i.feeTiers||null}}function Zd(e,A){let t=kt[Number(A)];if(!e||e===tL||e===rL||/^eth$/i.test(String(e)))return Go(t.weth);let r=String(e);if(/^weth$/i.test(r))return Go(t.weth);if(/^usdc$/i.test(r))return Go(t.usdc);if(!eL(r))throw new Error(`invalid token address: ${e}`);return Go(r)}function oL(e){let A=String(e||"uniswap").toLowerCase();return A==="uniswap"?["uniswap-v3","uniswap"]:A==="pancakeswap"?["pancakeswap-v3","pancakeswap"]:A==="hyperswap"?["hyperswap-v3","hyperswap"]:[A,`${A}-v3`]}async function Kd(e={},A={}){let{chainId:t,quoter:r,router:n,feeTiers:s}=sL(e.chainId??8453,e.venue),o=Zd(e.tokenIn||"WETH",t),i=Zd(e.tokenOut||kt[t].usdc,t),a=BigInt(e.amountIn??0);if(a<=0n)throw new Error("amountIn required (raw base units)");let c=s&&s.length?s:AL,l=e.fee!=null?[Number(e.fee)]:e.tryFees===!1?[c[Math.min(2,c.length-1)]]:[...c],u=[],g=null;for(let I of l){let C=_d.encodeFunctionData("quoteExactInputSingle",[{tokenIn:o,tokenOut:i,amountIn:a,fee:I,sqrtPriceLimitX96:0n}]);try{let B=await Nn(t,"eth_call",[{to:r,data:C},"latest"],A);if(!B||B==="0x"){u.push({fee:I,ok:!1,error:"empty result"});continue}let h=_d.decodeFunctionResult("quoteExactInputSingle",B),y={fee:I,ok:!0,amountOut:h[0].toString(),sqrtPriceX96After:h[1].toString(),initializedTicksCrossed:Number(h[2]),gasEstimate:h[3].toString()};u.push(y),(!g||BigInt(y.amountOut)>BigInt(g.amountOut))&&(g=y)}catch(B){u.push({fee:I,ok:!1,error:String(B.message||B).slice(0,160)})}}if(!g){let I=u.map(C=>`${C.fee}:${C.error||"fail"}`).join("; ");throw new Error(`uniswap-v3 quote failed chain=${t}: ${I}`)}let E=e.liquidityUsd==null?await Yo({chainId:t,tokenA:o,tokenB:i,dexIds:oL(e.venue)},A).catch(()=>null):null,Q=e.liquidityUsd??E?.liquidityUsd??null;return le({venue:"uniswap-v3",chainId:t,chain:kt[t].name,quoter:r,tokenIn:o,tokenOut:i,amountIn:a.toString(),fee:g.fee,amountOut:g.amountOut,gasEstimate:g.gasEstimate,liquidityUsd:Q,liquiditySource:E,sqrtPriceX96After:g.sqrtPriceX96After,initializedTicksCrossed:g.initializedTicksCrossed,triedFees:u,best:!0},{chainId:t,venue:n,amountOut:g.amountOut,liquidityUsd:Q,priceChange5m:e.priceChange5m,requestedCapBps:e.maxSlippageBps??e.slippageBps})}import{AbiCoder as iL,Interface as $d,getAddress as lA,isAddress as Jo,keccak256 as aL}from"ethers";SA();UA();var cL=iL.defaultAbiCoder(),Fr="0x0000000000000000000000000000000000000000",Ft={1:{name:"ethereum",poolManager:"0x000000000004444c5dc75cB358380D2e3dE08A90",quoter:"0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203",stateView:"0x7ffe42c4a5deea5b0fec41c94c136cf115597227",universalRouter:"0x66a9893cc07d91d95644aedd05d03f95e1dba8af",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},10:{name:"optimism",poolManager:"0x9a13f98cb987694c9f086b1f5eb990eea8264ec3",quoter:"0x1f3131a13296fb91c90870043742c3cdbff1a8d7",stateView:"0xc18a3169788f4f75a170290584eca6395c75ecdb",universalRouter:"0x851116d9223fabed8e56c0e6b8ad0c31d98b3507",weth:"0x4200000000000000000000000000000000000006",usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"},56:{name:"bsc",poolManager:"0x28e2ea090877bf75740558f6bfb36a5ffee9e9df",quoter:"0x9f75dd27d6664c475b90e105573e550ff69437b0",stateView:"0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4",universalRouter:"0x1906c1d672b88cd1b9ac7593301ca990f94eae07",weth:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",usdc:"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"},137:{name:"polygon",poolManager:"0x67366782805870060151383f4bbff9dab53e5cd6",quoter:"0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9",stateView:"0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a",universalRouter:"0x1095692a6237d83c6a72f3f5efedb9a670c49223",weth:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"},8453:{name:"base",poolManager:"0x498581fF718922c3f8e6A244956aF099B2652b2b",quoter:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",stateView:"0xa3c0c9b65bad0b08107aa264b0f3db444b867a71",universalRouter:"0x6ff5693b99212da76ad316178a184ab56d299b43",weth:"0x4200000000000000000000000000000000000006",usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},42161:{name:"arbitrum",poolManager:"0x360e68faccca8ca495c1b759fd9eee466db9fb32",quoter:"0x3972c00f7ed4885e145823eb7c655375d275a1c5",stateView:"0x76fd297e2d437cd7f76d50f01afe6160f86e9990",universalRouter:"0xa51afafe0263b40edaef0df8781ea9aa03e381a3",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},43114:{name:"avalanche",poolManager:"0x06380c0e0912312b5150364b9dc4542ba0dbbc85",quoter:"0xbe40675bb704506a3c2ccfb762dcfd1e979845c2",stateView:"0xc3c9e198c735a4b97e3e683f391ccbdd60b69286",universalRouter:"0x94b75331ae8d42c1b61065089b7d48fe14aa73b7",weth:"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",usdc:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E"},4663:{name:"robinhood",poolManager:"0x8366a39cc670b4001a1121b8f6a443a643e40951",quoter:"0x8dc178efb8111bb0973dd9d722ebeff267c98f94",stateView:"0xf3334192d15450cdd385c8b70e03f9a6bd9e673b",universalRouter:"0x8876789976dEcBfCbBbe364623C63652db8C0904",weth:"0x0bd7d308f8e1639fab988df18a8011f41eacad73",usdc:"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168"}},gL=[{fee:100,tickSpacing:1},{fee:500,tickSpacing:10},{fee:3e3,tickSpacing:60},{fee:1e4,tickSpacing:200},{fee:25e3,tickSpacing:8}],Xd=new $d(["function quoteExactInputSingle(((address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks) poolKey,bool zeroForOne,uint128 exactAmount,bytes hookData) params) returns (uint256 amountOut, uint256 gasEstimate)"]),QY=new $d(["function execute(bytes commands,bytes[] inputs,uint256 deadline) payable"]);var uL="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function lL(e){let A=Number(e),t=Ft[A];if(!t)throw new Error(`uniswap-v4: unsupported chainId ${e} (supported: ${Object.keys(Ft).join(", ")})`);return{chainId:A,...t}}function jd(e,A){let t=Ft[Number(A)];if(!e||e===uL||e===Fr||/^eth$/i.test(String(e)))return lA(t.weth);let r=String(e);if(/^weth$/i.test(r))return lA(t.weth);if(/^usdc$/i.test(r)||/^usdg$/i.test(r))return lA(t.usdc);if(!Jo(r))throw new Error(`invalid token address: ${e}`);return lA(r)}function EL({currency0:e,currency1:A,fee:t,tickSpacing:r,hooks:n=Fr}){let s=lA(e),o=lA(A);if(s.toLowerCase()===o.toLowerCase())throw new Error("poolKey currencies must differ");let[i,a]=s.toLowerCase()<o.toLowerCase()?[s,o]:[o,s],c=n&&Jo(n)?lA(n):Fr;return aL(cL.encode(["address","address","uint24","int24","address"],[i,a,Number(t),Number(r),c]))}function QL({tokenIn:e,tokenOut:A,fee:t,tickSpacing:r,hooks:n=Fr}){let s=lA(e),o=lA(A),[i,a]=s.toLowerCase()<o.toLowerCase()?[s,o]:[o,s],c=s.toLowerCase()===i.toLowerCase();return{poolKey:{currency0:i,currency1:a,fee:Number(t),tickSpacing:Number(r),hooks:n&&Jo(n)?lA(n):Fr},zeroForOne:c}}var BL=["uniswap-v4","uniswapv4"];async function ef(e={},A={}){let{chainId:t,quoter:r,poolManager:n,universalRouter:s}=lL(e.chainId??8453),o=jd(e.tokenIn||"WETH",t),i=jd(e.tokenOut||Ft[t].usdc,t),a=BigInt(e.amountIn??0);if(a<=0n)throw new Error("amountIn required (raw base units)");if(a>0xffffffffffffffffffffffffffffffffn)throw new Error("amountIn exceeds uint128");let c=e.fee!=null&&e.tickSpacing!=null?[{fee:Number(e.fee),tickSpacing:Number(e.tickSpacing)}]:e.tryTiers===!1?[{fee:500,tickSpacing:10}]:[...gL],l=e.hooks||Fr,u=[],g=null;for(let I of c){let{poolKey:C,zeroForOne:B}=QL({tokenIn:o,tokenOut:i,fee:I.fee,tickSpacing:I.tickSpacing,hooks:l}),h=Xd.encodeFunctionData("quoteExactInputSingle",[{poolKey:C,zeroForOne:B,exactAmount:a,hookData:"0x"}]);try{let y=await Nn(t,"eth_call",[{to:r,data:h},"latest"],A);if(!y||y==="0x"){u.push({...I,ok:!1,error:"empty result"});continue}let m=Xd.decodeFunctionResult("quoteExactInputSingle",y),T={fee:I.fee,tickSpacing:I.tickSpacing,ok:!0,amountOut:m[0].toString(),gasEstimate:m[1].toString(),poolKey:C,zeroForOne:B,poolId:EL({...C})};u.push(T),(!g||BigInt(T.amountOut)>BigInt(g.amountOut))&&(g=T)}catch(y){u.push({...I,ok:!1,error:String(y.message||y).slice(0,160)})}}if(!g){let I=u.map(C=>`${C.fee}/${C.tickSpacing}:${C.error||"fail"}`).join("; ");throw new Error(`uniswap-v4 quote failed chain=${t}: ${I}`)}let E=e.liquidityUsd==null?await Yo({chainId:t,tokenA:o,tokenB:i,dexIds:BL},A).catch(()=>null):null,Q=e.liquidityUsd??E?.liquidityUsd??null;return le({venue:"uniswap-v4",chainId:t,chain:Ft[t].name,poolManager:n,quoter:r,universalRouter:s||null,tokenIn:o,tokenOut:i,amountIn:a.toString(),fee:g.fee,tickSpacing:g.tickSpacing,hooks:g.poolKey.hooks,poolId:g.poolId,zeroForOne:g.zeroForOne,amountOut:g.amountOut,gasEstimate:g.gasEstimate,liquidityUsd:Q,liquiditySource:E,triedTiers:u,best:!0,executionReady:!1,prepareReady:typeof e.recipient=="string"&&Jo(e.recipient)&&e.slippageBps!=null},{chainId:t,venue:s||r,amountOut:g.amountOut,liquidityUsd:Q,priceChange5m:e.priceChange5m,requestedCapBps:e.maxSlippageBps??e.slippageBps})}uA();var IL="https://coins.llama.fi",CL="https://api.llama.fi";function hL(e={}){return(e.baseUrl||process.env.DEFILLAMA_COINS_URL||IL).replace(/\/$/,"")}function dL(e={}){return(e.baseUrl||process.env.DEFILLAMA_API_URL||CL).replace(/\/$/,"")}async function vo(e,A={}){if(!Array.isArray(e)||!e.length)throw new Error("llamaPrices requires coins[]");let t=e.map(encodeURIComponent).join(",");return ne(`${hL(A)}/prices/current/${t}`,{fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs})}async function Af(e={}){return ne(`${dL(e)}/protocols`,{fetchImpl:e.fetchImpl,timeoutMs:e.timeoutMs??2e4})}var EA=e=>{let A=Number(e);return Number.isFinite(A)?A:null};function Ho(e){if(!Array.isArray(e))return null;let A=0,t=!1;for(let r of e){let n=EA(r?.amountUSD);n!=null&&(A+=n,t=!0)}return t?A:null}async function cf(e,A={}){let t=Ng[Number(e)];if(!t)return null;try{let r=await vo([t],A);return EA(r?.coins?.[t]?.price)}catch{return null}}var XA=e=>String(e??"").toLowerCase().replace(/[^a-z0-9]/g,""),af=Object.freeze({across:["across"],relay:["relaychain","relay"],lifi:["jumper-(li.fi-powered)","lifi"],stargate:["stargate-v2","stargate-v1","stargate"],hop:["hop-protocol","hop"],debridge:["debridge"],synapse:["synapse"],connext:["connext"],cbridge:["celer-bridge","celer-cbridge","cbridge"],celer:["celer-bridge","celer-cbridge","cbridge"],squid:["squid"],symbiosis:["symbiosis"],wormhole:["wormhole"],mayan:["mayan"],allbridge:["allbridge"],thorchain:["thorchain"]});async function DL(e={}){try{let A=await Af({...e,baseUrl:e.defillamaApiBaseUrl,timeoutMs:e.defillamaTimeoutMs??Math.min(Number(e.timeoutMs??5e3),5e3)});return Array.isArray(A)?A:[]}catch{return[]}}function bL(e,A={}){let t=XA(A.tool||A.provider||A.bridge||A.protocol),r=[];return e==="lifi"&&t&&t!=="lifi"&&r.push(...af[t]||[t]),r.push(...af[XA(e)]||[e]),r}function kL(e,A,t={}){let r=Array.isArray(e)?e:[],n=bL(A,t).map(XA).filter(Boolean);for(let s of n){let o=r.find(a=>XA(a?.slug)===s||XA(a?.name)===s),i=EA(o?.tvl);if(i!=null)return{liquidityUsd:i,protocol:o?.name??o?.slug??s}}for(let s of n){let o=r.find(a=>{let c=XA(a?.category);return!c.includes("bridge")&&!c.includes("crosschain")?!1:XA(a?.slug).includes(s)||XA(a?.name).includes(s)}),i=EA(o?.tvl);if(i!=null)return{liquidityUsd:i,protocol:o?.name??o?.slug??s}}return null}function kg({chainId:e,tokenIn:A,tokenOut:t,amountIn:r,taker:n,slippageBps:s,decimalsIn:o,decimalsOut:i,nativePriceUsd:a=null,destDecimalsPromise:c=null,opts:l={}}){let u=[];return u.push({source:"lifi",run:async()=>{let g=await wg({fromChain:e,toChain:e,fromToken:A,toToken:t,fromAmount:r},l),E=g?.estimate??g?.[0]?.estimate;return{amountOut:E?.toAmount,minOut:E?.toAmountMin,gasUsd:Ho(E?.gasCosts),feeUsd:Ho(E?.feeCosts),oracleFeeBps:g?.oracleFee?.applies?g.oracleFee.bps:0,meta:{tool:g?.tool??g?.toolDetails?.name,oracleFee:g?.oracleFee??null}}}}),o!=null&&u.push({source:"paraswap",run:async()=>{let g=i??(await Promise.resolve(c))?.decimals;if(g==null)throw new Error("paraswap needs destination decimals; none supplied or resolvable");let E=await Ud({chainId:e,srcToken:A,destToken:t,amount:r,srcDecimals:o,destDecimals:g},l),Q=E?.priceRoute;return{amountOut:Q?.destAmount,gasUsd:EA(Q?.gasCostUSD),oracleFeeBps:E?.oracleFee?.applies?E.oracleFee.bps:0,meta:{bestRoute:Q?.bestRoute?.[0]?.swaps?.[0]?.swapExchanges?.[0]?.exchange,oracleFee:E?.oracleFee??null}}}}),process.env.ZEROX_API_KEY&&u.push({source:"0x",run:async()=>{let g=await Yd({chainId:e,sellToken:A,buyToken:t,sellAmount:r,taker:n},l),E=null,Q=g?.totalNetworkFee,I=await Promise.resolve(a);return Q!=null&&I&&(E=Number(Q)/1e18*I),{amountOut:g?.buyAmount,minOut:g?.minBuyAmount,gasUsd:E,meta:{source:g?.route?.fills?.[0]?.source}}}}),process.env.ONEINCH_API_KEY&&u.push({source:"1inch",run:async()=>{let g=await vd({chainId:e,src:A,dst:t,amount:r},l),E=null;return g?.gas!=null&&a&&(E=null),{amountOut:g?.dstAmount,gasUsd:E,meta:{gasUnits:g?.gas}}}}),u.push({source:"cow",run:async()=>{let g=await Vd({chainId:e,sellToken:A,buyToken:t,sellAmountBeforeFee:String(r),from:n},l),E=g?.quote??g,Q=E?.feeAmount;return{amountOut:E?.buyAmount,gasUsd:0,meta:{intent:!0,feeAmountInSellToken:Q,settlement:"solver-executed"}}}}),kt[Number(e)]&&u.push({source:"uniswap-v3",run:async()=>{let g=await Kd({chainId:e,tokenIn:A,tokenOut:t,amountIn:r},l);return{amountOut:g?.amountOut,minOut:g?.minOut??g?.amountOutMinimum??null,gasUsd:null,liquidityUsd:g?.liquidityUsd??null,meta:{onchain:!0,fee:g?.fee,gasUnits:g?.gasEstimate,quoter:g?.quoter}}}}),Ft[Number(e)]&&u.push({source:"uniswap-v4",run:async()=>{let g=await ef({chainId:e,tokenIn:A,tokenOut:t,amountIn:r,recipient:n,slippageBps:s},l);return{amountOut:g?.amountOut,minOut:g?.minOut??g?.amountOutMinimum??null,gasUsd:null,liquidityUsd:g?.liquidityUsd??null,meta:{onchain:!0,venue:"uniswap-v4",fee:g?.fee,tickSpacing:g?.tickSpacing,poolId:g?.poolId,hooks:g?.hooks,gasUnits:g?.gasEstimate,quoter:g?.quoter,poolManager:g?.poolManager,prepareReady:g?.prepareReady===!0,executionReady:!1}}}}),u}function gf({fromChainId:e,toChainId:A,tokenIn:t,tokenOut:r,amountIn:n,taker:s,opts:o={}}){let i=[],a=null,c=async(l,u={})=>(a||=DL(o),kL(await a,l,u));return i.push({source:"lifi",run:async()=>{let l=await wg({fromChain:e,toChain:A,fromToken:t,toToken:r,fromAmount:n},o),u=l?.estimate??l?.[0]?.estimate,g={tool:l?.tool??l?.toolDetails?.name,durationSeconds:EA(u?.executionDuration)},E=await c("lifi",g);return{amountOut:u?.toAmount,minOut:u?.toAmountMin,gasUsd:Ho(u?.gasCosts),feeUsd:Ho(u?.feeCosts),oracleFeeBps:l?.oracleFee?.applies?l.oracleFee.bps:0,liquidityUsd:E?.liquidityUsd??null,meta:{...g,liquidityProtocol:E?.protocol,oracleFee:l?.oracleFee??null}}}}),i.push({source:"relay",run:async()=>{let{relayQuote:l}=await Promise.resolve().then(()=>(bg(),Dg)),g=(await l({user:s,originChainId:e,destinationChainId:A,originCurrency:t,destinationCurrency:r,amount:String(n)},o))?.details,E={durationSeconds:EA(g?.timeEstimate),rate:g?.rate},Q=await c("relay",E);return{amountOut:g?.currencyOut?.amount,minOut:g?.currencyOut?.minimumAmount,gasUsd:EA(g?.totalImpact?.usd)!=null?Math.abs(EA(g.totalImpact.usd)):null,liquidityUsd:Q?.liquidityUsd??null,meta:{...E,liquidityProtocol:Q?.protocol}}}}),i.push({source:"across",run:async()=>{let{acrossSuggestedFees:l}=await Promise.resolve().then(()=>(bg(),Dg)),u=await l({token:t,destinationToken:r,originChainId:e,destinationChainId:A,amount:String(n)},o),g=u?.totalRelayFee?.total,E=null;if(g!=null)try{let I=BigInt(String(n))-BigInt(String(g));I>0n&&(E=I.toString())}catch{}let Q=await c("across");return{amountOut:E,gasUsd:null,liquidityUsd:Q?.liquidityUsd??null,meta:{derivedFromFees:!0,durationSeconds:EA(u?.estimatedFillTimeSec),limits:u?.limits?{min:u.limits.minDeposit,max:u.limits.maxDeposit}:void 0,liquidityProtocol:Q?.protocol}}}}),i}var FL={1:"ethereum",10:"optimism",56:"bsc",137:"polygon",8453:"base",42161:"arbitrum",43114:"avax"};async function uf(e,A,t){let r=FL[Number(e)];if(!r)return{priceUsd:null,decimals:null};let n=`${r}:${A}`;try{let o=(await vo([n],t))?.coins?.[n],i=Number(o?.price),a=Number(o?.decimals);return{priceUsd:Number.isFinite(i)?i:null,decimals:Number.isFinite(a)?a:null}}catch{return{priceUsd:null,decimals:null}}}async function GY(e,A={}){let{chainId:t,tokenIn:r,tokenOut:n,amountIn:s}=e;if(t==null||!r||!n||s==null)throw new Error("bestSwapRoute requires chainId, tokenIn, tokenOut, amountIn");let o=cf(t,A),i=uf(t,n,A),a=Pd(t,A).catch(()=>null),c=kg({...e,nativePriceUsd:o,decimalsOut:e.decimalsOut,destDecimalsPromise:i,opts:A}),[l,u,g]=await Promise.all([Mn(c,{timeoutMs:A.timeoutMs??12e3}),i,a]);o.catch(()=>{});let E=await o.then(C=>C,()=>null),Q=Oo(l,{destPriceUsd:u.priceUsd,destDecimals:e.decimalsOut??u.decimals,liquidityBandBps:A.liquidityBandBps??50,gasPriceWei:g,nativePriceUsd:E}),I=A.maxImpactPct===void 0?25:A.maxImpactPct;if(I!=null&&Q.best){let C=Q.best.source,h=await Ug(async y=>{let m=kg({...e,amountIn:y.toString(),nativePriceUsd:o,decimalsOut:e.decimalsOut,destDecimalsPromise:i,opts:A}).filter(_=>_.source===C);return m.length?(await Mn(m,{timeoutMs:A.timeoutMs??12e3}))?.[0]?.amountOut??null:null},s);if(h){let y=Mg(Q,{[C]:h},{maxImpactPct:I});return{kind:"swap",chainId:t,tokenIn:r,tokenOut:n,amountIn:String(s),...y,sourcesTried:c.length,sourcesAnswered:l.filter(m=>m.quality!==eA.FAILED).length,note:Fg(y,c.length),priceImpact:{[C]:Number(h.impactPct.toFixed(2))}}}}return{kind:"swap",chainId:t,tokenIn:r,tokenOut:n,amountIn:String(s),...Q,sourcesTried:c.length,sourcesAnswered:l.filter(C=>C.quality!==eA.FAILED).length,note:Fg(Q,c.length)}}async function JY(e,A={}){let{fromChainId:t,toChainId:r,tokenIn:n,tokenOut:s,amountIn:o}=e;if(t==null||r==null||!n||!s||o==null)throw new Error("bestBridgeRoute requires fromChainId, toChainId, tokenIn, tokenOut, amountIn");if(Number(t)===Number(r))throw new Error("bestBridgeRoute is for cross-chain; use bestSwapRoute for same-chain");let i=uf(r,s,A),a=gf({...e,opts:A}),[c,l]=await Promise.all([Mn(a,{timeoutMs:A.timeoutMs??15e3}),i]),u=Oo(c,{destPriceUsd:l.priceUsd,destDecimals:e.decimalsOut??l.decimals,liquidityBandBps:A.liquidityBandBps??50}),g=u.routes.map(E=>({source:E.source,seconds:E.meta?.durationSeconds??null})).filter(E=>E.seconds!=null);return{kind:"bridge",fromChainId:t,toChainId:r,tokenIn:n,tokenOut:s,amountIn:String(o),...u,durations:g,sourcesTried:a.length,sourcesAnswered:c.filter(E=>E.quality!==eA.FAILED).length,note:Fg(u,a.length)}}function RL(e){let A=e?.meta?.oracleFee;return A?.applies?` \xB7 ${Fd(A)}`:""}function Fg(e,A){if(!e.best)return"no source returned a usable route";let t=e.routes.length,r=RL(e.best);if(t===1)return`only 1 of ${A} sources answered, so this is the ONLY route, not a proven best one. Treat it as unbenchmarked.`+r;if(e.improvementBps!=null){let n=e.improvementBps,s=n/100;if(n<.01)return`best of ${t} routes, ranked on ${e.rankedOn}: effectively tied with the runner-up (${e.spreadBasis}), inside quote noise. Re-quote before you size up.`+r;let o=s>=.01?`${s.toFixed(2)}%`:`${n.toFixed(2)}bps`;return`best of ${t} routes, ranked on ${e.rankedOn}: ${o} better than the runner-up (${e.spreadBasis})`+r}return`best of ${t} routes, ranked on ${e.rankedOn}. No spread quoted: the top routes report cost differently, so the margin is not comparable.`+r}export{eA as QUALITY,JY as bestBridgeRoute,GY as bestSwapRoute,Fg as formatComparisonNote};
1
+ var Yt=Object.defineProperty;var M=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(n){throw r=[n],n}};var Qt=(e,t)=>{for(var r in t)Yt(e,r,{get:t[r],enumerable:!0})};import V from"node:net";import Wt from"node:dns";function re(e){let t=String(e).toLowerCase().split("%")[0];if((t.match(/::/g)||[]).length>1)return null;let r=f=>{if(!f)return[];let l=f.split(":"),a=l.at(-1);if(a?.includes(".")){let d=a.split(".").map(Number);if(d.length!==4||d.some(m=>!Number.isInteger(m)||m<0||m>255))return null;l.splice(l.length-1,1,(d[0]<<8|d[1]).toString(16),(d[2]<<8|d[3]).toString(16))}return l.some(d=>!/^[0-9a-f]{1,4}$/.test(d))?null:l.map(d=>Number.parseInt(d,16))},[n,o]=t.split("::"),i=r(n),s=r(o);if(!i||!s)return null;let c=t.includes("::"),u=8-i.length-s.length;if(!c&&u!==0||c&&u<1)return null;let p=[...i,...Array(Math.max(0,u)).fill(0),...s];return p.length!==8?null:Uint8Array.from(p.flatMap(f=>[f>>8,f&255]))}function ge(e,t,r){let n=Math.floor(r/8),o=r%8;for(let s=0;s<n;s+=1)if(e[s]!==t[s])return!1;if(!o)return!0;let i=255<<8-o;return(e[n]&i)===(t[n]&i)}function be(e){if(V.isIPv4(e)){let t=e.split(".").map(Number);return!(t[0]===0||t[0]===10||t[0]===127||t[0]>=224||t[0]===100&&t[1]>=64&&t[1]<=127||t[0]===169&&t[1]===254||t[0]===172&&t[1]>=16&&t[1]<=31||t[0]===192&&(t[1]===0||t[1]===2||t[1]===168)||t[0]===192&&t[1]===88&&t[2]===99||t[0]===198&&(t[1]===18||t[1]===19||t[1]===51)||t[0]===203&&t[1]===0&&t[2]===113)}if(V.isIPv6(e)){let t=re(e);if(!t)return!1;let r=re("::ffff:0:0");return ge(t,r,96)?be([...t.slice(12)].join(".")):ge(t,re("2000::"),3)?![["2001::",23],["2001:db8::",32],["2001:10::",28],["2001:2::",48],["2002::",16],["3fff::",20]].some(([o,i])=>ge(t,re(o),i)):!1}return!1}function Zt(e){let t;try{t=new URL(String(e))}catch{return{ok:!1,error:`not a valid URL: ${String(e).slice(0,120)}`}}if(t.protocol!=="http:"&&t.protocol!=="https:")return{ok:!1,error:`refused protocol ${t.protocol} (only http/https)`};let r=t.hostname.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,"");if(Jt.has(r)||r.endsWith(".localhost")||r.endsWith(".internal"))return{ok:!1,error:`refused internal host ${r}`};let n=V.isIP(r);return n!==0&&!be(r)?{ok:!1,error:`refused private address ${r}`}:{ok:!0,url:t,host:r,isLiteralIp:n!==0}}async function Ee(e,{lookupFn:t=Wt.promises.lookup}={}){let r=Zt(e);if(!r.ok)return r;if(r.isLiteralIp)return{ok:!0,url:r.url,addresses:[{address:r.host,family:V.isIPv6(r.host)?6:4}]};let n;try{n=await t(r.host,{all:!0,verbatim:!0})}catch{return{ok:!1,error:`refused: ${r.host} did not resolve`}}return!Array.isArray(n)||n.length===0||n.some(o=>!be(o.address))?{ok:!1,error:`refused: ${r.host} resolves to a non-public address`}:{ok:!0,url:r.url,addresses:n}}async function ye({requireUndici:e=!1,importUndici:t=()=>import("undici")}={}){let r,n;try{let l=await t();r=l.Agent,n=l.fetch}catch(l){if(e)throw new Error(`egress-guard: untrustedUrl pinning requires the undici package, which failed to load: ${l?.message||l}`);return null}if(typeof r!="function"||typeof n!="function"){if(e)throw new Error("egress-guard: untrustedUrl pinning requires undici's Agent and fetch exports, which were not found on the imported module");return null}let o=l=>String(l).toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,""),i=new Map,s=l=>(Array.isArray(l)?l:[l]).map(a=>typeof a=="string"?{address:a}:a).filter(a=>a&&a.address).map(a=>({address:a.address,family:a.family||(V.isIPv6(a.address)?6:4)})),c=(l,a,d)=>{i.set(o(l),s(typeof a=="string"?[{address:a,family:d}]:a))},u=l=>{let a=o(l);if(V.isIP(a))return[{address:a,family:V.isIPv6(a)?6:4}];let d=i.get(a);if(!d||!d.length)throw new Error(`refused: unpinned host ${l} during pinned fetch`);return d},p=new r({connect:{lookup(l,a,d){let m;try{m=u(l)}catch(h){return d(h)}return a?.all?d(null,m):d(null,m[0].address,m[0].family)}}}),f=er((l,a={})=>n(l,{...a,dispatcher:p}),c);return{dispatcher:p,fetch:f,pin:c,resolve:u,async close(){try{await p.destroy()}catch{}}}}function er(e,t){if(typeof e!="function")throw new Error("markPinCapableFetch: fetchImpl must be a function");if(typeof t!="function")throw new Error("markPinCapableFetch: pin must be a function");return e[Ae]=Object.freeze({pin:t}),e}function xe(e){return typeof e=="function"&&typeof e[Ae]?.pin=="function"}function Ve(e,t,r){if(!xe(e))throw new Error("pinFetchToAddresses: fetchImpl is not pin-capable");e[Ae].pin(t,r)}var Jt,Ae,je=M(()=>{Jt=new Set(["localhost","metadata.google.internal","metadata.goog"]);Ae=Symbol.for("oracle.egressGuard.pinCapableFetch")});import{createHash as tr}from"node:crypto";function ir(e){let t=String(e||"").toLowerCase();return Qe.includes(t)||/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(t)}function sr(e){let t={};for(let[r,n]of Object.entries(e||{}))ir(r)||(t[r]=n);return t}function cr(e,t){if(!e)throw new Error(`HTTP redirect from ${t} missing Location`);let r=new URL(String(e),String(t));if(r.protocol!=="http:"&&r.protocol!=="https:")throw new Error(`HTTP redirect from ${t} used unsupported protocol ${r.protocol}`);return r.toString()}function ur(e,t){return new URL(String(e)).origin===new URL(String(t)).origin}function lr(e,t,r,n={}){let o={};for(let[f,l]of Object.entries(r||{}))o[f.toLowerCase()]=l;let i=Object.keys(o).filter(f=>/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(f)),c=[...new Set([...Qe,...i])].sort().map(f=>`${f}=${o[f]??""}`).join(`
2
+ `),u=tr("sha256").update(c).digest("hex").slice(0,32),p=`${n.untrustedUrl?"untrusted":"trusted"}:${n.maxResponseBytes??"unbounded"}`;return`${e} ${t} ${p} ${u}`}function dr(e,t){let r=Number(t);return Number.isFinite(r)&&r>0?Math.min(r*1e3,Ge):Math.min(250*2**e,Ge)+Math.floor(Math.random()*100)}function W(e,t={}){let r=new Error(e);return r.retryable=!1,Object.assign(r,t),r}function Ie(e,t,r){return W(`HTTP response from ${e} exceeded maxResponseBytes ${r} (${t})`,{oversize:!0})}function J(e){try{let t=e?.body?.cancel?.();t&&typeof t.then=="function"&&t.catch(()=>{})}catch{}}function fr(e){return e?e.byteLength??e.length??0:0}async function Ke(e,t,{url:r,truncate:n=!1,onOversize:o}={}){if(t==null)return await e.text();let i=Number(e.headers?.get?.("content-length"));if(Number.isFinite(i)&&i>t&&(J(e),!n))throw Ie(r,`content-length ${i}`,t);let s=e.body?.getReader?.();if(!s){let l=await e.text(),a=Buffer.byteLength(l,"utf8");if(a>t){if(!n)throw Ie(r,`body ${a} bytes`,t);return Buffer.from(l,"utf8").subarray(0,t).toString("utf8")}return l}let c=[],u=0,p=!1;try{for(;;){let{value:l,done:a}=await s.read();if(a)break;if(l&&(c.push(Buffer.from(l)),u+=fr(l),u>t)){p=!0;break}}}finally{if(p)try{await s.cancel()}catch{}try{s.releaseLock?.()}catch{}}if(p&&(typeof o=="function"&&o(),!n))throw Ie(r,`streamed ${u} bytes`,t);let f=Buffer.concat(c);return(p?f.subarray(0,t):f).toString("utf8")}function Ye(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}async function mr(e,{fetchImpl:t,method:r,headers:n,body:o,timeoutMs:i,lookupFn:s,realFetch:c,untrustedUrl:u=!1,maxResponseBytes:p=null,importUndici:f,validateResponse:l}){let a=new AbortController,d=setTimeout(()=>a.abort(),i),m=null,h=t,g=s?{lookupFn:s}:{};if(u&&!c&&!xe(h))throw W(`HTTP refused ${e}: untrustedUrl requires a pin-capable fetchImpl (see markPinCapableFetch in egress-guard.mjs) or no fetchImpl override so Oracle can pin the connection itself`);let A=async(b,{status:y=null}={})=>{let S=await Ee(b,g);if(!S.ok)throw W(y==null?`HTTP refused ${b}: ${S.error}`:`HTTP redirect to ${b} ${S.error}`,y==null?{}:{status:y});let E=new URL(b).hostname;if(c){if(m&&(await m.close(),m=null),!m)try{m=await ye({requireUndici:!0,...f?{importUndici:f}:{}})}catch(C){throw W(y==null?`HTTP refused ${b}: ${C?.message||C}`:`HTTP redirect to ${b} refused: ${C?.message||C}`,y==null?{}:{status:y})}m.pin(E,S.addresses),h=m.fetch}else Ve(h,E,S.addresses);return S};try{let b=String(e),y={...n||{}};u&&await A(b);for(let S=0;S<=Xe;S+=1){let E=await h(b,{method:r,headers:y,body:o,signal:a.signal,redirect:"manual"});if(or.has(E.status)){if(r!=="GET"&&r!=="HEAD"){let k=await Ke(E,p??ar,{url:b,truncate:!0}),O=new Error(`HTTP ${E.status} ${r} ${b} redirected non-idempotent request`);throw O.status=E.status,O.body=Ye(k)??k.slice(0,300),O}if(S===Xe)throw J(E),new Error(`HTTP redirect loop for ${e}`);let w=E.headers?.get?.("location"),x;try{x=cr(w,b)}catch(k){throw J(E),k}let _=!ur(x,b);if(J(E),_&&(y=sr(y)),u)await A(x,{status:E.status});else if(_){let k=await Ee(x,g);if(!k.ok){let O=new Error(`HTTP redirect from ${b} ${k.error}`);throw O.status=E.status,O.retryable=!1,O}c&&k.addresses?.length&&(m||(m=await ye(f?{importUndici:f}:{})),m&&(m.pin(new URL(x).hostname,k.addresses),h=m.fetch))}b=x;continue}if(typeof l=="function")try{await l(E,{url:b})}catch(w){throw J(E),W(w?.message||String(w))}let C=await Ke(E,p,{url:b,onOversize:()=>a.abort()}),$=Ye(C);if(!E.ok){let w=new Error(`HTTP ${E.status} ${r} ${b}`);throw w.status=E.status,w.retryAfter=E.headers?.get?.("retry-after")??null,w.body=$??C.slice(0,300),w}return $??C}throw new Error(`HTTP redirect loop for ${e}`)}finally{clearTimeout(d),m&&await m.close()}}async function I(e,t={}){let r=t.fetchImpl||globalThis.fetch;if(typeof r!="function")throw new Error("fetch unavailable \u2014 pass opts.fetchImpl");let n=t.timeoutMs??12e3,o=(t.method||"GET").toUpperCase(),i={Accept:"application/json",...t.headers||{}},s=t.body;s!=null&&typeof s!="string"&&(i["Content-Type"]=i["Content-Type"]||"application/json",s=JSON.stringify(s));let c=Number.isInteger(t.retries)?Math.max(t.retries,0):nr,u=t.lookupFn,p=!t.fetchImpl,f=t.untrustedUrl===!0,l=t.importUndici,a=t.validateResponse,d=Number(t.maxResponseBytes),m=Number.isFinite(d)&&d>0?Math.floor(d):null,h=async()=>{let S;for(let E=0;E<=c;E++)try{return await mr(e,{fetchImpl:r,method:o,headers:i,body:s,timeoutMs:n,lookupFn:u,realFetch:p,untrustedUrl:f,maxResponseBytes:m,importUndici:l,validateResponse:a})}catch(C){S=C;let $=C?.status,w=C?.name==="AbortError",x=new Set([408,425,429]),_=C?.retryable===!1?!1:$!=null?x.has($)||rr.has($)&&ze.has(o):!w&&ze.has(o);if(E===c||!_)throw C;await pr(dr(E,C?.retryAfter))}throw S};if(!(t.dedupe!==!1&&o==="GET"&&s==null))return h();let A=lr(o,e,i,{untrustedUrl:f,maxResponseBytes:m}),b=Se.get(A);if(b)return b;let y=h().finally(()=>Se.delete(A));return Se.set(A,y),y}var rr,ze,nr,Ge,Qe,or,Xe,ar,Se,pr,R=M(()=>{je();rr=new Set([408,425,429,500,502,503,504]),ze=new Set(["GET","HEAD","OPTIONS","PUT","DELETE"]),nr=2,Ge=4e3,Qe=["authorization","x-api-key","x-tensor-api-key","0x-api-key","api-key","cookie","proxy-authorization"],or=new Set([301,302,303,307,308]),Xe=3,ar=64*1024;Se=new Map;pr=e=>new Promise(t=>setTimeout(t,e))});import{readFileSync as hr}from"node:fs";import{homedir as wr}from"node:os";import{join as ne}from"node:path";function gr(){if(process.env.ORACLE_TEST_ISOLATE_SECRETS==="1"){let r=(process.env.ORACLE_EXEC_ENV_FILE||"").trim();return r?[r]:[]}let e=(process.env.ORACLE_EXEC_ENV_FILE||process.env.MAD_EXEC_ENV_FILE||"").trim(),t=wr();if(process.env.ORACLE_PUBLIC_DESKTOP==="1"){let r=(process.env.ORACLE_CONFIG_DIR||ne(t,".config","oracle")).trim();return[e,ne(r,"exec.env")].filter(Boolean)}return[e,ne(t,".config","oracle","exec.env"),ne(t,".config","mad-desk","exec.env")].filter(Boolean)}function We(e,t,r){let n=e??process.env[t]??process.env[r];if(!String(n||"").trim())for(let o of gr())try{let i=hr(o,"utf8"),s=i.match(new RegExp(`^${t}=(.*)$`,"m"))||i.match(new RegExp(`^${r}=(.*)$`,"m"));if(s&&(n=s[1].trim(),n))break}catch{}if(!String(n||"").trim())throw new Error(`${t} required for attestation. Set it in the environment, or place ${t}=<value> in ~/.config/oracle/exec.env`);return n}var Je=M(()=>{});var Ze=M(()=>{});import{createHash as br,createHmac as tt,timingSafeEqual as Er}from"node:crypto";function ae(e){return Array.isArray(e)?`[${e.map(ae).join(",")}]`:e&&typeof e=="object"?`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${ae(e[t])}`).join(",")}}`:JSON.stringify(e??null)}function rt(e,{required:t=!1}={}){try{return We(e,"ORACLE_ROUTE_ATTESTATION_SECRET","MAD_ROUTE_ATTESTATION_SECRET")}catch(r){if(t)throw r;return null}}function ve(e){let{signature:t,...r}=e;return r}function nt(e,{secret:t}={}){let r=rt(t);return r?{...e,signature:tt("sha256",r).update(ae(ve(e))).digest("hex")}:e}function yr(e){let t=String(e||"").toLowerCase();if(!/^0x[0-9a-f]+$/.test(t)||t.length<10||t.length%2!==0)throw new Error("auto-slippage calldata must be even-length hex with a selector");return br("sha256").update(Buffer.from(t.slice(2),"hex")).digest("hex")}function j(e,{chainId:t,venue:r,data:n,secret:o}={}){if(!e||e.mode!=="auto")throw new Error("bounded auto-slippage guard required");if(Number(e.chainId)!==Number(t))throw new Error("auto-slippage guard chain mismatch");if(String(e.venue).toLowerCase()!==String(r||"").toLowerCase())throw new Error("auto-slippage guard venue mismatch");let i=rt(o);if(i){let d=tt("sha256",i).update(ae(ve(e))).digest("hex");if(!Ar(e.signature,d))throw new Error("auto-slippage guard signature mismatch \u2014 refusing to bind a guard this Oracle did not issue")}let s=Number(e.selectedBps),c=Number(e.capBps);if(!Number.isInteger(s)||s<0||s>oe||!Number.isInteger(c)||c<0||c>oe||s>c)throw new Error("auto-slippage guard bounds are invalid");let u=BigInt(e.quoteAmountOut??0),p=BigInt(e.minAmountOut??0);if(u<=0n||p<=0n)throw new Error("auto-slippage guard amounts must be positive");let f=u*BigInt(1e4-s),l=f/10000n;if(f%10000n!==0n&&(l+=1n),p<l)throw new Error("auto-slippage guard is under-protected relative to its quote");let a=Ir(n);if(a!=null&&a!==p)throw new Error(`auto-slippage: calldata encodes floor ${a}, not the guard floor ${p} \u2014 refusing to bind`);return nt({...ve(e),calldataHash:yr(n)},{secret:o})}function Ar(e,t){let r=Buffer.from(String(e??""),"utf8"),n=Buffer.from(String(t??""),"utf8");return r.length!==n.length||r.length===0?!1:Er(r,n)}function Ce(e,t=0){let r=Number(e);return Number.isFinite(r)?r:t}function xr(e){let t=e==null?oe:Number(e);if(!Number.isInteger(t)||t<0)throw new Error("auto-slippage cap must be a non-negative integer bps value");return Math.min(t,oe)}function U({liquidityUsd:e,priceChange5m:t=0,quoteAgeMs:r=0,crossChain:n=!1,requestedCapBps:o}={}){let i=Ce(e,0),s=i>0?i>=25e4?5:i>=1e5?10:i>=5e4?20:i>=1e4?40:70:n?30:10,c=Math.min(60,Math.abs(Ce(t,0))*2),u=Math.min(40,Math.floor(Math.max(0,Ce(r,0))/5e3)*5),p=Math.max(25,Math.ceil(20+s+c+u)),f=xr(o);return{mode:"auto",requiredBps:p,selectedBps:Math.min(p,f),capBps:f,executable:p<=f}}function Sr({chainId:e,venue:t,quoteAmountOut:r,liquidityUsd:n,priceChange5m:o=0,quoteAgeMs:i=0,crossChain:s=!1,requestedCapBps:c,quotedAtMs:u=Date.now(),ttlMs:p=et,secret:f}={}){let l=BigInt(r??0);if(l<=0n)throw new Error("auto-slippage guard requires positive quoteAmountOut");let a=U({liquidityUsd:n,priceChange5m:o,quoteAgeMs:i,crossChain:s,requestedCapBps:c});if(!a.executable)throw new Error(`auto-slippage requires ${a.requiredBps} bps above hard/requested cap ${a.capBps}; route blocked`);let d=Number(u);if(!Number.isFinite(d))throw new Error("auto-slippage: quotedAtMs must be a finite number");let m=Math.min(3e4,Math.max(1e3,Number(p)||et)),h=l*BigInt(1e4-a.selectedBps),g=h/10000n;if(h%10000n!==0n&&(g+=1n),g>l&&(g=l),l>0n&&g<=0n)throw new Error(`auto-slippage: quote ${l} is too small to express a ${a.selectedBps} bps floor without rounding to zero`);let A=Number((l-g)*10000n/(l===0n?1n:l));if(A>a.capBps)throw new Error(`auto-slippage: realised floor implies ${A} bps, above cap ${a.capBps} \u2014 refusing to issue a guard weaker than advertised`);return nt({mode:"auto",chainId:Number(e),venue:String(t||"unknown"),quoteAmountOut:l.toString(),minAmountOut:g.toString(),requiredBps:a.requiredBps,selectedBps:a.selectedBps,capBps:a.capBps,quotedAtMs:d,expiresAtMs:d+m},{secret:f})}function Ir(e){let t=String(e||"");if(!/^0x[0-9a-fA-F]+$/.test(t)||t.length<10||t.length%2!==0)return null;let r=t.slice(0,10).toLowerCase(),n=[];for(let i=10;i+64<=t.length;i+=64)n.push(t.slice(i,i+64));let o=i=>n[i]==null?null:BigInt("0x"+n[i]);switch(r){case"0x414bf389":return o(6);case"0x04e45aaf":return o(5);case"0xc04b8d59":{let i=o(0);if(i==null)return null;let s=Number(i)/32;return!Number.isInteger(s)||s<0?null:o(s+4)}case"0xb858183f":{let i=o(0);if(i==null)return null;let s=Number(i)/32;return!Number.isInteger(s)||s<0?null:o(s+3)}case"0xa026383e":return o(6);case"0x38ed1739":case"0x5c11d795":return o(1);case"0x7ff36ab5":case"0xb6f9de95":return o(0);case"0x18cbafe5":case"0x791ac947":return o(1);default:return null}}function v(e,{chainId:t,venue:r,amountOut:n,liquidityUsd:o,priceChange5m:i,crossChain:s,requestedCapBps:c,quotedAtMs:u=Date.now(),ttlMs:p}={}){let f=Sr({chainId:t,venue:r,quoteAmountOut:n,liquidityUsd:o,priceChange5m:i,crossChain:s,requestedCapBps:c,quotedAtMs:u,ttlMs:p});return{...e,autoSlippage:f,amountOutMinimum:f.minAmountOut}}var oe,et,F=M(()=>{Je();Ze();oe=100,et=2e4});function ot(e){let t=String(e||"").trim();return/^0x[0-9a-fA-F]{40}$/.test(t)?t:z}var z,ie=M(()=>{z="0x000000000000000000000000000000000000dEaD"});import{createHash as Cr,createHmac as vr,timingSafeEqual as Ro}from"node:crypto";function ke(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(ke).join(",")}]`:`{${Object.keys(e).sort().map(r=>`${JSON.stringify(r)}:${ke(e[r])}`).join(",")}}`}function at(e){let t=String(e?.ORACLE_STAMP_HMAC_SECRET||"").trim();return t.length>=16?t:""}function it(e=process.env){return at(process.env)||at(e)}function Tr(e){let{prepareHash:t,prepareMac:r,note:n,...o}=e||{};return o}function Nr(e){let t=Tr(e);return Cr("sha256").update(ke(t)).digest("hex")}function Rr(e,t=it()){return t?vr("sha256",t).update(String(e)).digest("hex"):""}function L(e,{provider:t,kind:r,env:n=process.env,nowMs:o=Date.now(),expiresAtMs:i}={}){if(!e||typeof e!="object")throw new Error("stampPrepared: payload object required");let s=Object.prototype.hasOwnProperty.call(e,"oraclePrepared");if(s&&typeof e.oraclePrepared!="boolean")throw new Error("stampPrepared: oraclePrepared must be boolean");let c={...e,provider:e.provider||t,kind:e.kind||r,requiresUserSignature:e.requiresUserSignature!==!1,signingReady:!1,broadcastReady:!1,executionReady:!1,oraclePrepared:s?e.oraclePrepared:!0};if(!c.provider)throw new Error("stampPrepared: provider required");if(!c.kind)throw new Error("stampPrepared: kind required");let u=Number(o),p=i==null?u+Or:Number(i),f=p-u;if(!Number.isSafeInteger(u)||!Number.isSafeInteger(p)||f<=0||f>_r)throw new Error("stampPrepared: bounded preparedAt/expiresAt required");let a={...c,preparedAt:u,expiresAt:p,prepareVersion:kr},d=Nr(a),m=it(n),h=m?Rr(d,m):void 0,g={...a,prepareHash:d};return h&&(g.prepareMac=h),g}var kr,Or,_r,D=M(()=>{kr=2,Or=300*1e3,_r=(()=>{let e=Number(process.env.ORACLE_PREPARE_HARD_MAX_AGE_MS);return Number.isFinite(e)&&e>0?e:1800*1e3})()});var Re={};Qt(Re,{ACROSS_API:()=>Dt,HOP_API:()=>Mt,RELAY_API:()=>qt,acrossHealth:()=>Qn,acrossSuggestedFees:()=>Ht,hopHealth:()=>Wn,hopQuote:()=>Vt,relayHealth:()=>Jn,relayPrepare:()=>Zn,relayQuote:()=>Ne});async function Qn(e={}){try{return{ok:!0,estimatedFillTimeSec:(await Ht({token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",destinationToken:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",originChainId:1,destinationChainId:42161,amount:"1000000000000000"},e)).estimatedFillTimeSec}}catch(t){return{ok:!1,error:String(t.message||t).slice(0,160)}}}async function Ht(e={},t={}){let{token:r,destinationToken:n=r,originChainId:o,destinationChainId:i,amount:s}=e;if(!r||o==null||i==null||!s)throw new Error("acrossSuggestedFees requires token, originChainId, destinationChainId, amount");let c=new URLSearchParams({token:r,destinationToken:n,originChainId:String(o),destinationChainId:String(i),amount:String(s)}),u=(t.baseUrl||process.env.ACROSS_API_URL||Dt).replace(/\/$/,"");return I(`${u}/suggested-fees?${c}`,{fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??15e3})}async function Wn(e={}){try{let t=await Vt({amount:"1000000000000000",token:"ETH",fromChain:"ethereum",toChain:"arbitrum",slippage:.5},e);return{ok:!0,estimatedRecieved:t.estimatedRecieved||t.estimatedReceived}}catch(t){return{ok:!1,error:String(t.message||t).slice(0,160)}}}async function Vt(e={},t={}){let{amount:r,token:n="ETH",fromChain:o="ethereum",toChain:i="arbitrum"}=e;if(!r)throw new Error("hopQuote requires amount");let s=e.slippage==null?void 0:Math.round(Number(e.slippage)*100),c=U({liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:o!==i,requestedCapBps:e.maxSlippageBps??e.slippageBps??s});if(!c.executable)throw new Error(`hop: route requires ${c.requiredBps} bps above cap ${c.capBps}`);let u=new URLSearchParams({amount:String(r),token:n,fromChain:o,toChain:i,slippage:String(c.selectedBps/100)}),p=(t.baseUrl||process.env.HOP_API_URL||Mt).replace(/\/$/,""),f=await I(`${p}/quote?${u}`,{fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??15e3}),l=f?.estimatedRecieved||f?.estimatedReceived;return l?v(f,{chainId:Number(e.originChainId||e.chainId||Yn[o]||0),venue:f?.tx?.to||"hop",amountOut:l,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:o!==i,requestedCapBps:e.maxSlippageBps??e.slippageBps??s}):{...f,autoSlippagePolicy:c}}async function Jn(e={}){try{let t=await Ne({user:z,originChainId:1,destinationChainId:8453,originCurrency:"0x0000000000000000000000000000000000000000",destinationCurrency:"0x0000000000000000000000000000000000000000",amount:"1000000000000000",tradeType:"EXACT_INPUT"},e);return{ok:!0,hasSteps:Array.isArray(t.steps),stepCount:t.steps?.length||0}}catch(t){return{ok:!1,error:String(t.message||t).slice(0,160)}}}async function Ne(e={},t={}){let{user:r=z,originChainId:n,destinationChainId:o,originCurrency:i="0x0000000000000000000000000000000000000000",destinationCurrency:s="0x0000000000000000000000000000000000000000",amount:c,tradeType:u="EXACT_INPUT"}=e;if(n==null||o==null||!c)throw new Error("relayQuote requires originChainId, destinationChainId, amount");let p=U({liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:Number(n)!==Number(o),requestedCapBps:e.maxSlippageBps??e.slippageBps});if(!p.executable)throw new Error(`relay: route requires ${p.requiredBps} bps above cap ${p.capBps}`);let f=(t.baseUrl||process.env.RELAY_API_URL||qt).replace(/\/$/,""),l=await I(`${f}/quote`,{method:"POST",body:{user:r,originChainId:Number(n),destinationChainId:Number(o),originCurrency:i,destinationCurrency:s,amount:String(c),tradeType:u,slippageTolerance:String(p.selectedBps)},fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??2e4}),a=l?.details?.currencyOut?.amount;return!a||!/^\d+$/.test(String(a))?{...l,autoSlippagePolicy:p}:v(l,{chainId:Number(n),venue:l?.steps?.[0]?.items?.[0]?.data?.to||"relay",amountOut:a,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:Number(n)!==Number(o),requestedCapBps:e.maxSlippageBps??e.slippageBps})}async function Zn(e={},t={}){let r=await Ne(e,t),n=Number(e.originChainId),o=(r.steps||[]).flatMap(c=>(c.items||[]).filter(u=>u?.data?.to&&u?.data?.data).map(u=>({stepId:c.id,...u.data})));if(!o.length)throw new Error("relay: quote returned no executable transaction items");let i=String(r?.autoSlippage?.venue||"").toLowerCase();if(o.some(c=>String(c.to).toLowerCase()!==i))throw new Error("relay: route includes a separate approval/transaction that is not yet safely bound");let s=o.map(c=>({chainId:n,from:c.from||e.user,to:c.to,data:c.data,value:c.value??"0x0",...c.gasLimit!=null||c.gas!=null?{gasLimit:c.gasLimit??c.gas}:{},slippageGuard:j(r.autoSlippage,{chainId:n,venue:c.to,data:c.data})}));return L({provider:"relay",calldataReady:!0,requiresUserSignature:!0,signingReady:!1,broadcastReady:!1,chainId:n,quote:r,autoSlippage:r.autoSlippage,transactions:s},{provider:"relay",kind:"relay-tx"})}var Dt,Mt,qt,Yn,Be=M(()=>{R();F();ie();D();Dt="https://across.to/api",Mt="https://api.hop.exchange/v1",qt="https://api.relay.link",Yn={ethereum:1,optimism:10,bsc:56,polygon:137,arbitrum:42161,avalanche:43114,base:8453}});var io=Object.freeze(["blockNumber","nativeBalance","tokenBalance","resolveToken","resolvePools","scanBlocks","scoreRisk","quote","sellSimulation","prepareUnsignedTx"]),so=Object.freeze({LIVE:"LIVE",CACHED:"CACHED",STALE:"STALE",UNKNOWN:"UNKNOWN",UNAVAILABLE:"UNAVAILABLE"}),co=Object.freeze({PASS:"PASS",CAUTION:"CAUTION",FAIL:"FAIL",UNKNOWN:"UNKNOWN"});var N=Object.freeze({FULL:"FULL",NO_GAS:"NO_GAS",FAILED:"FAILED"}),Me={1:"coingecko:ethereum",10:"coingecko:ethereum",56:"coingecko:binancecoin",137:"coingecko:matic-network",8453:"coingecko:ethereum",42161:"coingecko:ethereum",43114:"coingecko:avalanche-2",999:"coingecko:ethereum"},Q=e=>{try{return e==null||e===""?null:BigInt(String(e).split(".")[0])}catch{return null}};function De(e){let{source:t,amountOut:r,minOut:n=null,gasUsd:o=null,feeUsd:i=null,oracleFeeBps:s=0,estimatedGas:c=null,liquidityUsd:u=null,error:p=null,executionReady:f=!1,meta:l={}}=e||{};if(p||r==null)return{source:t,quality:N.FAILED,amountOut:null,error:p||"no amountOut returned"};let a=Q(r);if(a==null||a<=0n)return{source:t,quality:N.FAILED,amountOut:null,error:"non-positive amountOut"};let d=Number(s);return{source:t,quality:o==null?N.NO_GAS:N.FULL,amountOut:a.toString(),minOut:Q(n)?.toString()??null,gasUsd:o,feeUsd:i,oracleFeeBps:Number.isFinite(d)&&d>0?Math.floor(d):0,estimatedGas:c==null?null:String(c),liquidityUsd:u==null?null:Number(u),executionReady:f,meta:l}}async function qe(e,t,{divisor:r=1000n}={}){let n=Q(t);if(n==null||n<=0n)return null;let o=n/r>0n?n/r:1n;if(o>=n)return null;let i,s;try{[i,s]=await Promise.all([e(o),e(n)])}catch{return null}let c=Q(i),u=Q(s);if(c==null||u==null||c<=0n)return null;let p=Number(c)/Number(o),f=Number(u)/Number(n);return!Number.isFinite(p)||!Number.isFinite(f)||p<=0?null:{impactPct:(1-f/p)*100,probeAmountIn:o.toString(),probeAmountOut:c.toString(),fullAmountOut:u.toString()}}function He(e,t,{maxImpactPct:r=25}={}){let n=[],o=[],i=(e.routes??[]).filter(c=>{let u=t?.[c.source];return u?u.impactPct>r?(n.push({source:c.source,impactPct:Number(u.impactPct.toFixed(2)),reason:`price impact ${u.impactPct.toFixed(1)}% exceeds ${r}% ceiling -- the venue cannot absorb this size near the quoted price`}),!1):!0:(o.push(c.source),!0)}),s=[...e.warnings??[]];return n.length&&s.push(`dropped ${n.length} route(s) on price impact: `+n.map(c=>`${c.source} (${c.impactPct}%)`).join(", ")),o.length&&s.push(`price impact NOT measured for: ${o.join(", ")}. These are unproven against thin liquidity, not proven safe.`),{...e,routes:i,best:i[0]??null,impactRejected:n,impactUnmeasured:o,warnings:s}}function we(e,{destPriceUsd:t=null,destDecimals:r=null,liquidityFirst:n=!0,liquidityBandBps:o=50,gasPriceWei:i=null,nativePriceUsd:s=null}={}){let c=e.filter(w=>w.quality!==N.FAILED),u=e.filter(w=>w.quality===N.FAILED),p=t!=null&&t>0&&r!=null&&r>=0,f=Number(i),l=Number(s),a=Number.isFinite(f)&&f>0&&Number.isFinite(l)&&l>0,d=c.map(w=>{let x=BigInt(w.amountOut),_=0n,k=!1,O=!1,Y=BigInt(w.oracleFeeBps??0),Ue=Y>0n?x*Y/10000n:0n;if(p){let ee=w.gasUsd,he=Number(w.meta?.gasUnits??w.estimatedGas);if(ee==null&&a&&Number.isFinite(he)&&he>0){let H=he*f/1e18*l;Number.isFinite(H)&&H>=0&&(ee=H,O=!0)}let Le=(ee??0)+(w.feeUsd??0);if(Le>0){let H=Le/t*10**r;Number.isFinite(H)&&H>=0&&(_=BigInt(Math.floor(H)),k=!0)}else ee===0&&(k=!0)}let Fe=_+Ue,Kt=x>Fe?x-Fe:0n;return{...w,grossOut:x.toString(),netOut:Kt.toString(),costInDest:_.toString(),oracleFeeInDest:Ue.toString(),costAccounted:k,gasEstimated:O}}),m=Number(o)>0?Number(o):0,h=d.reduce((w,x)=>BigInt(x.netOut)>w?BigInt(x.netOut):w,0n),g=w=>h>0n?Number((h-BigInt(w))*10000n/h):0,A=[],b=d.slice().sort((w,x)=>BigInt(x.netOut)>BigInt(w.netOut)?1:-1)[0]??null;d.sort((w,x)=>{let _=g(w.netOut)<=m?0:1,k=g(x.netOut)<=m?0:1;if(n&&m>0&&_!==k)return _-k;if(n&&m>0){let O=w.liquidityUsd??-1,Y=x.liquidityUsd??-1;if(O!==Y)return Y-O}return BigInt(x.netOut)>BigInt(w.netOut)?1:-1}),n&&m>0&&b&&d[0]&&d[0].source!==b.source&&A.push(`liquidity-first: chose ${d[0].source} (liquidity $${d[0].liquidityUsd??"unknown"}) over best-price ${b.source} within ${m} bps`);let y=d.filter(w=>!w.costAccounted).map(w=>w.source);p?y.length&&A.push(`gas not reported by: ${y.join(", ")}. These are ranked on gross output and may be overstated relative to gas-measured routes.`):A.push("destination price/decimals unavailable: ranked on GROSS output. Gas is not included, so a cheap-looking route may cost more to execute.");let S=d[0];if(p&&S&&S.costAccounted===!1){let w=d.find(x=>x.costAccounted&&g(x.netOut)<=m);w&&A.push(`winner ${S.source} has UNMEASURED gas; gas-measured ${w.source} is within ${m} bps and may net more once ${S.source}'s real gas is paid \u2014 prefer it if unsure.`)}let E=d.filter(w=>w.gasEstimated).map(w=>w.source);E.length&&A.push(`gas ESTIMATED (from gas units x current gas price, not measured) for: ${E.join(", ")}. Net includes this estimate so the ranking is gas-inclusive, but the on-chain gas may differ.`);let C=null,$=null;if(d.length>=2&&d[0].costAccounted&&d[1].costAccounted){let w=BigInt(d[0].netOut),x=BigInt(d[1].netOut);x>0n&&(C=Number((w-x)*10000n/x),$=`${d[0].source} vs ${d[1].source}`)}return{best:d[0]??null,routes:d,failed:u,improvementBps:C,spreadBasis:$,rankedOn:p?"net-of-cost":"gross",warnings:A}}async function te(e,{timeoutMs:t=12e3}={}){let r=(o,i)=>Promise.race([o,new Promise((s,c)=>setTimeout(()=>c(new Error(`${i}: timeout`)),t))]);return(await Promise.allSettled(e.map(o=>r(Promise.resolve().then(o.run),o.source)))).map((o,i)=>{let s=e[i].source;return o.status==="rejected"?De({source:s,error:String(o.reason?.message||o.reason)}):De({source:s,...o.value})})}R();F();ie();D();import{existsSync as qr,readFileSync as Hr,lstatSync as Vr}from"node:fs";import{homedir as ct}from"node:os";import{join as Oe}from"node:path";import{Contract as Br,JsonRpcProvider as Pr}from"ethers";var $r="0x62FCFAf7573AD8B41a0FBF347AfEb85e06599A75",Ur=999,Fr="https://rpc.hyperliquid.xyz/evm",Lr=["function balanceOf(address owner) view returns (uint256)"],Dr=/^0x[a-fA-F0-9]{40}$/;function Mr(e){return Dr.test(String(e||""))}async function st(e,{contract:t=$r,rpc:r=Fr,chainId:n=Ur,balanceOf:o}={}){if(!Mr(e))throw new Error("invalid-address");if(o)return BigInt(await o(e));let i=new Pr(r,n,{staticNetwork:!0}),s=new Br(t,Lr,i);return BigInt(await s.balanceOf(e))}var jr=100,zr=5,ut=Object.freeze({swap:5,bridge:5,perps:0,nft:0});function Gr(e){let t=String(e||"swap").toLowerCase();return Object.prototype.hasOwnProperty.call(ut,t)?ut[t]:zr}var Xr="ORACLE_INTEGRATOR_FEE_BPS",Kr="ORACLE_INTEGRATOR_FEE_RECIPIENT",Yr="ORACLE_INTEGRATOR_ID",lt="ORACLE_INTEGRATOR_FEE_RECIPIENT_PIN",Qr="oracle";function Wr(e=process.env){if(process.env.ORACLE_TEST_ISOLATE_SECRETS==="1"){if(e[lt])return String(e[lt]);let t=e.ORACLE_CONFIG_DIR||Oe(ct(),".config","oracle");return Oe(t,"fee-recipient")}return Oe(ct(),".config","oracle","fee-recipient")}function Jr(e=process.env){try{let t=Wr(e);if(!qr(t)||Vr(t).isSymbolicLink())return"";let r=Hr(t,"utf8").trim().toLowerCase();return/^0x[a-f0-9]{40}$/.test(r)?r:""}catch{return""}}function Zr(e,{fallback:t=0}={}){if(e==null)return t;if(String(e).trim()==="")return 0;let r=Number(e);return!Number.isFinite(r)||r<=0?0:Math.min(Math.floor(r),jr)}function en({env:e=process.env,action:t="swap",admin:r=!1}={}){let n=String(e[Kr]||"").trim(),o=String(e[Yr]||Qr).trim();if(r===!0)return{bps:0,recipient:"",integrator:o,action:t,applies:!1,reason:"admin-oracle"};let i=Gr(t),s=Zr(e[Xr],{fallback:n?i:0}),c=Math.min(s,i);if(!c)return{bps:0,recipient:"",integrator:o,action:t,applies:!1,reason:"not-configured"};if(!/^0x[a-fA-F0-9]{40}$/.test(n))return{bps:0,recipient:"",integrator:o,action:t,applies:!1,reason:"no-recipient"};let u=Jr(e);return!u||u!==n.toLowerCase()?{bps:0,recipient:"",integrator:o,action:t,applies:!1,reason:"recipient-not-pinned"}:{bps:c,recipient:n,integrator:o,action:t,applies:!0,reason:"configured"}}async function se({wallet:e,env:t=process.env,action:r="swap",holderCheck:n={},admin:o=!1}={}){let i=en({env:t,action:r,admin:o});if(o===!0)return{...i,holderVerificationStatus:"admin-oracle"};let s=String(e||"").trim().toLowerCase();if(!/^0x[a-f0-9]{40}$/.test(s))return{...i,holderVerificationStatus:"wallet-required"};try{return BigInt(await st(s,n))>0n?{...i,bps:0,applies:!1,reason:"locals-only-holder",holderVerificationStatus:"holder"}:{...i,holderVerificationStatus:"non-holder"}}catch{return{...i,holderVerificationStatus:"unavailable"}}}function dt(e){return e?.applies?`Oracle routing fee ${e.bps} bps (${(e.bps/100).toFixed(2)}%) to ${e.recipient}.`:e?.reason==="admin-oracle"?"No Oracle fee (admin Oracle).":e?.reason==="locals-only-holder"?"No Oracle fee (Locals Only holder).":"No Oracle fee."}function pt(e){return e?.applies?{integrator:e.integrator,fee:String(e.bps/1e4)}:{}}function ft(e){return e?.applies?{partner:e.integrator,partnerFeeBps:String(e.bps),partnerAddress:e.recipient}:{}}var tn="https://li.quest/v1";function rn(e={}){return(e.baseUrl||process.env.LIFI_API_URL||tn).replace(/\/$/,"")}var nn="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";async function _e(e={},t={}){let{fromChain:r,toChain:n=r,fromToken:o=nn,toToken:i,fromAmount:s,fromAddress:c=z}=e;if(r==null||!i||!s)throw new Error("lifiQuote requires fromChain, toToken, fromAmount");let u=new URLSearchParams({fromChain:String(r),toChain:String(n),fromToken:o,toToken:i,fromAmount:String(s),fromAddress:c}),p=U({liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:Number(n)!==Number(r),requestedCapBps:e.maxSlippageBps??e.slippageBps});if(!p.executable)throw new Error(`lifi: route requires ${p.requiredBps} bps above cap ${p.capBps}`);u.set("slippage",String(p.selectedBps/1e4));let f=await se({wallet:e.fromAddress,env:t.env,action:e.feeAction||"swap",holderCheck:t.holderCheck});for(let[g,A]of Object.entries(pt(f)))u.set(g,A);let l=await I(`${rn(t)}/quote?${u}`,{fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??2e4}),a=l?.estimate?.toAmount||l?.toAmount;if(!a)return{...l,autoSlippagePolicy:p,oracleFee:f};let d=l?.transactionRequest?.to||l?.estimate?.approvalAddress||"lifi",m=v(l,{chainId:Number(r),venue:d,amountOut:a,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:Number(n)!==Number(r),requestedCapBps:e.maxSlippageBps??e.slippageBps}),h=l?.estimate?.toAmountMin||l?.toAmountMin;if(h!=null&&BigInt(h)<BigInt(m.amountOutMinimum))throw new Error("lifi: provider transaction is under-protected versus bounded auto-slippage floor");return{...m,oracleFee:f}}R();F();D();var on="https://api.paraswap.io",an=(e={})=>(e.baseUrl||process.env.PARASWAP_API_URL||on).replace(/\/$/,"");function mt(e,t){let r=String(e||"");if(!/^0x[0-9a-fA-F]{40}$/.test(r))throw new Error(`${t} must be a 20-byte token address`);return r.toLowerCase()}async function ht(e={},t={}){let r=Number(e.chainId||e.network||1);if(e.amount==null)throw new Error("amount required");let n=new URLSearchParams({srcToken:mt(e.srcToken,"srcToken"),destToken:mt(e.destToken,"destToken"),amount:String(e.amount),srcDecimals:String(Number(e.srcDecimals)),destDecimals:String(Number(e.destDecimals)),side:String(e.side||"SELL").toUpperCase(),network:String(r),version:String(e.version||"6.2")});e.includeDEXS&&n.set("includeDEXS",String(e.includeDEXS)),e.excludeDEXS&&n.set("excludeDEXS",String(e.excludeDEXS));let o=await se({wallet:e.userAddress||e.fromAddress,env:t.env,action:e.feeAction||"swap",holderCheck:t.holderCheck});for(let[c,u]of Object.entries(ft(o)))n.set(c,u);let i=await I(`${an(t)}/prices?${n}`,{fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??2e4}),s=i?.priceRoute?.destAmount;return s?{...v(i,{chainId:r,venue:i?.priceRoute?.contractAddress||"paraswap-quote",amountOut:s,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,quoteAgeMs:0,requestedCapBps:e.maxSlippageBps??e.slippageBps}),executionReady:!1,executionBlocker:"call prepare to bind the price route to a validated transaction",oracleFee:o}:{...i,executionReady:!1,oracleFee:o}}R();F();var wt="ORACLE_ALLOW_CUSTOM_PROVIDER_URL";function ce({provider:e,defaultUrl:t,hosts:r=[],url:n,strict:o=!1}){let s=(String(n??"").trim()||String(t)).replace(/\/$/,"");if(s===String(t).replace(/\/$/,""))return{baseUrl:s,trusted:!0,host:gt(t)};let c;try{c=new URL(s)}catch{throw new Error(`${e}: baseUrl must be an absolute http(s) URL`)}if(c.protocol!=="http:"&&c.protocol!=="https:")throw new Error(`${e}: baseUrl must be an absolute http(s) URL`);let u=c.host;if(!u)throw new Error(`${e}: baseUrl must be an absolute http(s) URL`);if(new Set([gt(t),...r]).has(u)){let f=/^(127\.0\.0\.1|localhost|\[::1\])(:\d+)?$/i.test(u);return c.protocol==="http:"&&!f?{baseUrl:s,trusted:!1,host:u,reason:"plaintext http downgrade"}:{baseUrl:s,trusted:!0,host:u}}if(String(process.env[wt]||"")==="1")return{baseUrl:s,trusted:!1,host:u};if(o)throw new Error(`${e}: refusing to call non-allowlisted host ${u} (set ${wt}=1 to permit it)`);return{baseUrl:s,trusted:!1,host:u}}function gt(e){let t=new URL(String(e));if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error("unsupported protocol");return t.host}function ue(e,t,r){let n={...e};if(!r)return n;for(let[o,i]of Object.entries(t||{}))i&&(n[o]=i);return n}D();var sn="https://api.0x.org";function bt(e={}){return ce({provider:"zerox",defaultUrl:sn,hosts:["api.0x.org"],url:e.baseUrl||process.env.ZEROX_API_URL})}function cn(e={}){return bt(e).baseUrl}function Et(e={}){return e.apiKey||process.env.ZEROX_API_KEY||process.env.OX_API_KEY||process.env["0X_API_KEY"]||""}function un(e={}){return ue({"0x-version":"v2",accept:"application/json"},{"0x-api-key":Et(e)},bt(e).trusted)}async function yt(e={},t={}){if(!Et(t))throw new Error("ZEROX_API_KEY required for 0x");let{chainId:r=8453,sellToken:n,buyToken:o,sellAmount:i,taker:s}=e;if(!n||!o||!i)throw new Error("zeroxQuote requires sellToken, buyToken, sellAmount");let c=U({liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,requestedCapBps:e.maxSlippageBps??e.slippageBps});if(!c.executable)throw new Error(`0x: route requires ${c.requiredBps} bps above cap ${c.capBps}`);let u=new URLSearchParams({chainId:String(r),sellToken:n,buyToken:o,sellAmount:String(i),slippageBps:String(c.selectedBps)});s&&u.set("taker",s);let p=await I(`${cn(t)}/swap/allowance-holder/quote?${u}`,{headers:un(t),fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??15e3}),f=p?.buyAmount||p?.grossBuyAmount;return f?v(p,{chainId:r,venue:p?.transaction?.to||p?.to||"0x",amountOut:f,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,requestedCapBps:e.maxSlippageBps??e.slippageBps}):{...p,autoSlippagePolicy:c}}R();F();D();var ln="https://api.1inch.dev/swap/v6.0";function At(e={}){return ce({provider:"oneinch",defaultUrl:ln,hosts:["api.1inch.dev"],url:e.baseUrl||process.env.ONEINCH_API_URL})}function dn(e={}){return At(e).baseUrl}function xt(e={}){return e.apiKey||process.env.ONEINCH_API_KEY||process.env.ONE_INCH_API_KEY||""}function pn(e={}){let t=xt(e);return ue({accept:"application/json"},{Authorization:t?`Bearer ${t}`:""},At(e).trusted)}async function St(e={},t={}){if(!xt(t))throw new Error("ONEINCH_API_KEY required for 1inch");let r=Number(e.chainId??1),{src:n,dst:o,amount:i}=e;if(!n||!o||!i)throw new Error("oneinchQuote requires src, dst, amount");let s=new URLSearchParams({src:n,dst:o,amount:String(i)}),c=await I(`${dn(t)}/${r}/quote?${s}`,{headers:pn(t),fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??15e3});return c?.dstAmount?v(c,{chainId:r,venue:"1inch-quote",amountOut:c.dstAmount,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,requestedCapBps:e.maxSlippageBps??e.slippageBps}):c}R();F();import{TypedDataEncoder as ma,getAddress as ha,isAddress as wa}from"ethers";var la=Object.freeze({READ:"read",PREPARE:"prepare",EXECUTE:"execute",AUTONOMOUS:"autonomous"});ie();D();var fn={1:"https://api.cow.fi/mainnet/api/v1",100:"https://api.cow.fi/xdai/api/v1",42161:"https://api.cow.fi/arbitrum_one/api/v1",8453:"https://api.cow.fi/base/api/v1"},Sa=Object.freeze({1:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",100:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",42161:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",8453:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41"}),Ia=Object.freeze({1:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110",100:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110",42161:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110",8453:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"}),It={1:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",8453:"0x4200000000000000000000000000000000000006",42161:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},mn={1:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",8453:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",42161:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},Ca=Object.freeze({Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}),va=Object.freeze({OrderCancellations:[{name:"orderUids",type:"bytes[]"}]});function hn(e,t={}){if(t.baseUrl)return t.baseUrl.replace(/\/$/,"");let r=fn[Number(e)];if(!r)throw new Error(`cowswap: unsupported chainId ${e}`);return r}async function Ct(e={},t={}){let r=Number(e.chainId??1),n=ot(e.from||e.owner),o=e.sellToken||It[r],i=e.buyToken||mn[r],s=String(e.sellAmountBeforeFee||e.sellAmount||"0");if(!o||!i||s==="0")throw new Error("cowQuote requires sellToken, buyToken, sellAmountBeforeFee");if(/eeeeeeee|native|^eth$/i.test(o)&&(o=It[r],!o))throw new Error("no WETH mapping for chain");let c={sellToken:o,buyToken:i,from:n,receiver:e.receiver||n,sellAmountBeforeFee:s,kind:e.kind||"sell",signingScheme:e.signingScheme||"eip1271"},u=await I(`${hn(r,t)}/quote`,{method:"POST",body:c,fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??15e3}),p=u?.quote?.buyAmount||u?.buyAmount;return p?v(u,{chainId:r,venue:"cowswap-order",amountOut:p,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,requestedCapBps:e.maxSlippageBps??e.slippageBps}):u}import{Interface as Rt,getAddress as de,isAddress as _n}from"ethers";R();var vt={robinhood:{chainId:4663,name:"Robinhood Chain",rpcEnv:["RH_CHAIN_RPC"],evm:!0},ethereum:{chainId:1,name:"Ethereum",rpcEnv:["ETH_RPC_URL","ETHEREUM_RPC_URL","MAINNET_RPC_URL"],evm:!0},polygon:{chainId:137,name:"Polygon",rpcEnv:["POLYGON_RPC_URL","POLYGON_RPC"],evm:!0},arbitrum:{chainId:42161,name:"Arbitrum One",rpcEnv:["ARBITRUM_RPC_URL","ARB_RPC_URL"],evm:!0},base:{chainId:8453,name:"Base",rpcEnv:["BASE_RPC_URL"],evm:!0},hyperevm:{chainId:999,name:"HyperEVM",rpcEnv:["HYPEREVM_RPC_URL","HYPER_EVM_RPC"],evm:!0},bsc:{chainId:56,name:"BNB Smart Chain",rpcEnv:["BSC_RPC_URL","BNB_RPC_URL"],evm:!0},avalanche:{chainId:43114,name:"Avalanche C-Chain",rpcEnv:["AVALANCHE_RPC_URL","AVAX_RPC_URL"],evm:!0},optimism:{chainId:10,name:"OP Mainnet",rpcEnv:["OPTIMISM_RPC_URL","OP_RPC_URL"],evm:!0},abstract:{chainId:2741,name:"Abstract",rpcEnv:["ABSTRACT_RPC_URL","ABS_RPC_URL"],evm:!0},stable:{chainId:988,name:"Stable Mainnet",rpcEnv:["STABLE_RPC_URL","STABLE_RPC"],evm:!0}},wn=new Map(Object.values(vt).map(e=>[e.chainId,e]));function kt(e){return wn.get(Number(e))||null}function Ot(e,t=process.env){let r=kt(e);if(!r)return null;for(let n of r.rpcEnv){let o=(t[n]||"").trim();if(o)return o}return null}import{Interface as gn,getAddress as Ba}from"ethers";var Pa=new gn(["function allowance(address owner,address spender) view returns (uint256)","function balanceOf(address account) view returns (uint256)"]);var bn={1:"https://ethereum.publicnode.com",137:"https://polygon-bor-rpc.publicnode.com",42161:"https://arbitrum-one-rpc.publicnode.com",8453:"https://base-rpc.publicnode.com",10:"https://optimism-rpc.publicnode.com",988:"https://rpc.stable.xyz",56:"https://bsc-rpc.publicnode.com",43114:"https://avalanche-c-chain-rpc.publicnode.com",999:"https://rpc.hyperliquid.xyz/evm",2741:"https://api.mainnet.abs.xyz",4663:"https://rpc.mainnet.chain.robinhood.com"};function En(e,{rpcUrl:t,env:r=process.env}={}){if(t)return t;let n=Ot(e,r);return n||bn[Number(e)]||null}var yn=/^(?:eth_(?:call|blocknumber|chainid|get[a-z0-9]+|feehistory|gasprice|maxpriorityfeepergas|syncing|protocolversion|estimategas|createaccesslist)|net_(?:version|listening|peercount)|web3_(?:clientversion|sha3))$/;function An(e){let t=String(e||""),r=t.toLowerCase();if(t!==t.trim()||!/^[a-zA-Z0-9_]+$/.test(t)||!yn.test(r))throw new Error(`evm-rpc: ${t} refused \u2014 @oracle-agent/oracle is prepare-only (read RPC only; no broadcast/sign)`);return r}async function Z(e,t,r=[],n={}){let o=String(t||"");An(o);let i=En(e,n);if(!i)throw new Error(`No RPC URL for chainId ${e} (set env from chain registry rpcEnv or pass rpcUrl)`);let c=await I(i,{method:"POST",body:{jsonrpc:"2.0",id:1,method:t,params:r},fetchImpl:n.fetchImpl,timeoutMs:n.timeoutMs??12e3});if(c?.error){let u=new Error(c.error.message||JSON.stringify(c.error));throw u.code=c.error.code,u}return c.result}async function _t(e,t={}){let r=await Z(e,"eth_gasPrice",[],t);if(r==null)return null;try{return BigInt(r)}catch{return null}}R();var xn="https://api.dexscreener.com",Sn=Object.freeze({1:"ethereum",10:"optimism",56:"bsc",137:"polygon",8453:"base",42161:"arbitrum",43114:"avalanche",999:"hyperevm",4663:"robinhood"}),T=e=>String(e??"").toLowerCase(),In=e=>Array.isArray(e)?e:e==null?[]:[e];function Cn(e,t,r){let n=T(t),o=T(r),i=T(e?.baseToken?.address),s=T(e?.quoteToken?.address);return i===n&&s===o||i===o&&s===n}function vn(e){let t=Number(e?.liquidity?.usd);return Number.isFinite(t)&&t>=0?t:null}function kn(e={}){return(e.baseUrl||process.env.DEXSCREENER_API_URL||xn).replace(/\/$/,"")}async function On(e,t={}){if(!e)throw new Error("tokenAddress required");return I(`${kn(t)}/latest/dex/tokens/${e}`,{fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??12e3})}async function le({chainId:e,tokenA:t,tokenB:r,dexIds:n=[]}={},o={}){if(e==null||!t||!r)throw new Error("chainId, tokenA, and tokenB required");let i=T(Sn[Number(e)]||e),s=new Set(In(n).filter(Boolean).map(T)),c=[...new Set([t,r].map(a=>String(a)).filter(Boolean))],u=await Promise.allSettled(c.map(a=>On(a,{...o,baseUrl:o.dexscreenerBaseUrl,timeoutMs:o.dexscreenerTimeoutMs??Math.min(Number(o.timeoutMs??4e3),4e3)}))),p=new Set,f=[];for(let a of u)if(a.status==="fulfilled")for(let d of a.value?.pairs||a.value?.data?.pairs||[]){let m=`${T(d?.chainId)}:${T(d?.dexId)}:${T(d?.pairAddress)}`;p.has(m)||(p.add(m),f.push(d))}return f.filter(a=>T(a?.chainId)===i).filter(a=>Cn(a,t,r)).filter(a=>!s.size||s.has(T(a?.dexId))).map(a=>({pairAddress:a.pairAddress??null,dexId:a.dexId??null,chainId:a.chainId??null,liquidityUsd:vn(a),pairCreatedAt:a.pairCreatedAt??null})).filter(a=>a.liquidityUsd!=null).sort((a,d)=>d.liquidityUsd-a.liquidityUsd)[0]??null}F();D();var G={1:{name:"ethereum",quoter:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",router:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},8453:{name:"base",quoter:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",router:"0x2626664c2603336E57B271c5C0b26F421741e481",weth:"0x4200000000000000000000000000000000000006",usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},42161:{name:"arbitrum",quoter:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",router:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},4663:{name:"robinhood",quoter:"0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7",router:"0xcaf681a66d020601342297493863e78c959e5cb2",weth:"0x0bd7d308f8e1639fab988df18a8011f41eacad73",usdc:"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168"},999:{name:"hyperevm",weth:"0x5555555555555555555555555555555555555555",usdc:"0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb"},10:{name:"optimism",quoter:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",router:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",weth:"0x4200000000000000000000000000000000000006",usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"},56:{name:"bsc",quoter:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",router:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2",weth:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",usdc:"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"},137:{name:"polygon",quoter:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",router:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",weth:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"},43114:{name:"avalanche",quoter:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",router:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE",weth:"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",usdc:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E"}},Tn=[100,500,3e3,1e4],Tt=new Rt(["function quoteExactInputSingle((address tokenIn, address tokenOut, uint256 amountIn, uint24 fee, uint160 sqrtPriceLimitX96) params) returns (uint256 amountOut, uint160 sqrtPriceX96After, uint32 initializedTicksCrossed, uint256 gasEstimate)","function quoteExactInput(bytes path, uint256 amountIn) returns (uint256 amountOut, uint160[] sqrtPriceX96AfterList, uint32[] initializedTicksCrossedList, uint256 gasEstimate)"]),Va=new Rt(["function exactInputSingle((address tokenIn,address tokenOut,uint24 fee,address recipient,uint256 amountIn,uint256 amountOutMinimum,uint160 sqrtPriceLimitX96) params) payable returns (uint256 amountOut)","function multicall(uint256 deadline,bytes[] data) payable returns (bytes[] results)"]),Nn="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",Rn="0x0000000000000000000000000000000000000000",Te=[100,500,2500,1e4],Bn={56:{pancakeswap:{name:"pancakeswap",quoter:"0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997",router:"0x13f4EA83D0bd40E75C8222255bc855a974568Dd4",feeTiers:Te}},8453:{pancakeswap:{name:"pancakeswap",quoter:"0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997",router:"0x13f4EA83D0bd40E75C8222255bc855a974568Dd4",feeTiers:Te}},42161:{pancakeswap:{name:"pancakeswap",quoter:"0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997",router:"0x13f4EA83D0bd40E75C8222255bc855a974568Dd4",feeTiers:Te}},999:{hyperswap:{name:"hyperswap",quoter:"0x03A918028f22D9E1473B7959C927AD7425A45C7C",router:"0x4E2960a8cd19B467b82d26D83fAcb0fAE26b094D"}}};function Pn(e,t){let r=Number(e),n=G[r];if(!n)throw new Error(`uniswap-v3: unsupported chainId ${e} (supported: ${Object.keys(G).join(", ")})`);let o=Bn[r]||{};if(!t){if(!n.quoter||!n.router){let u=Object.keys(o).join(", ")||"none registered";throw new Error(`uniswap-v3: chain ${r} (${n.name}) has no canonical Uniswap v3 deployment -- name a venue explicitly (known: ${u})`)}return{chainId:r,venue:n.name,...n}}let i=String(t).toLowerCase();if(i===n.name&&n.quoter&&n.router)return{chainId:r,venue:n.name,...n};let s=o,c=s[i];if(!c){let u=[...n.quoter&&n.router?[n.name]:[],...Object.keys(s)].join(", ");throw new Error(`uniswap-v3: unknown venue "${t}" on chain ${r} (known: ${u})`)}return{chainId:r,venue:i,...n,quoter:c.quoter,router:c.router,feeTiers:c.feeTiers||null}}function Nt(e,t){let r=G[Number(t)];if(!e||e===Nn||e===Rn||/^eth$/i.test(String(e)))return de(r.weth);let n=String(e);if(/^weth$/i.test(n))return de(r.weth);if(/^usdc$/i.test(n))return de(r.usdc);if(!_n(n))throw new Error(`invalid token address: ${e}`);return de(n)}function $n(e){let t=String(e||"uniswap").toLowerCase();return t==="uniswap"?["uniswap-v3","uniswap"]:t==="pancakeswap"?["pancakeswap-v3","pancakeswap"]:t==="hyperswap"?["hyperswap-v3","hyperswap"]:[t,`${t}-v3`]}async function Bt(e={},t={}){let{chainId:r,quoter:n,router:o,feeTiers:i}=Pn(e.chainId??8453,e.venue),s=Nt(e.tokenIn||"WETH",r),c=Nt(e.tokenOut||G[r].usdc,r),u=BigInt(e.amountIn??0);if(u<=0n)throw new Error("amountIn required (raw base units)");let p=i&&i.length?i:Tn,f=e.fee!=null?[Number(e.fee)]:e.tryFees===!1?[p[Math.min(2,p.length-1)]]:[...p],l=[],a=null;for(let h of f){let g=Tt.encodeFunctionData("quoteExactInputSingle",[{tokenIn:s,tokenOut:c,amountIn:u,fee:h,sqrtPriceLimitX96:0n}]);try{let A=await Z(r,"eth_call",[{to:n,data:g},"latest"],t);if(!A||A==="0x"){l.push({fee:h,ok:!1,error:"empty result"});continue}let b=Tt.decodeFunctionResult("quoteExactInputSingle",A),y={fee:h,ok:!0,amountOut:b[0].toString(),sqrtPriceX96After:b[1].toString(),initializedTicksCrossed:Number(b[2]),gasEstimate:b[3].toString()};l.push(y),(!a||BigInt(y.amountOut)>BigInt(a.amountOut))&&(a=y)}catch(A){l.push({fee:h,ok:!1,error:String(A.message||A).slice(0,160)})}}if(!a){let h=l.map(g=>`${g.fee}:${g.error||"fail"}`).join("; ");throw new Error(`uniswap-v3 quote failed chain=${r}: ${h}`)}let d=e.liquidityUsd==null?await le({chainId:r,tokenA:s,tokenB:c,dexIds:$n(e.venue)},t).catch(()=>null):null,m=e.liquidityUsd??d?.liquidityUsd??null;return v({venue:"uniswap-v3",chainId:r,chain:G[r].name,quoter:n,tokenIn:s,tokenOut:c,amountIn:u.toString(),fee:a.fee,amountOut:a.amountOut,gasEstimate:a.gasEstimate,liquidityUsd:m,liquiditySource:d,sqrtPriceX96After:a.sqrtPriceX96After,initializedTicksCrossed:a.initializedTicksCrossed,triedFees:l,best:!0},{chainId:r,venue:o,amountOut:a.amountOut,liquidityUsd:m,priceChange5m:e.priceChange5m,requestedCapBps:e.maxSlippageBps??e.slippageBps})}import{AbiCoder as Un,Interface as Ut,getAddress as B,isAddress as pe,keccak256 as Fn}from"ethers";F();D();var Ln=Un.defaultAbiCoder(),K="0x0000000000000000000000000000000000000000",X={1:{name:"ethereum",poolManager:"0x000000000004444c5dc75cB358380D2e3dE08A90",quoter:"0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203",stateView:"0x7ffe42c4a5deea5b0fec41c94c136cf115597227",universalRouter:"0x66a9893cc07d91d95644aedd05d03f95e1dba8af",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},10:{name:"optimism",poolManager:"0x9a13f98cb987694c9f086b1f5eb990eea8264ec3",quoter:"0x1f3131a13296fb91c90870043742c3cdbff1a8d7",stateView:"0xc18a3169788f4f75a170290584eca6395c75ecdb",universalRouter:"0x851116d9223fabed8e56c0e6b8ad0c31d98b3507",weth:"0x4200000000000000000000000000000000000006",usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"},56:{name:"bsc",poolManager:"0x28e2ea090877bf75740558f6bfb36a5ffee9e9df",quoter:"0x9f75dd27d6664c475b90e105573e550ff69437b0",stateView:"0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4",universalRouter:"0x1906c1d672b88cd1b9ac7593301ca990f94eae07",weth:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",usdc:"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"},137:{name:"polygon",poolManager:"0x67366782805870060151383f4bbff9dab53e5cd6",quoter:"0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9",stateView:"0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a",universalRouter:"0x1095692a6237d83c6a72f3f5efedb9a670c49223",weth:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"},8453:{name:"base",poolManager:"0x498581fF718922c3f8e6A244956aF099B2652b2b",quoter:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",stateView:"0xa3c0c9b65bad0b08107aa264b0f3db444b867a71",universalRouter:"0x6ff5693b99212da76ad316178a184ab56d299b43",weth:"0x4200000000000000000000000000000000000006",usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},42161:{name:"arbitrum",poolManager:"0x360e68faccca8ca495c1b759fd9eee466db9fb32",quoter:"0x3972c00f7ed4885e145823eb7c655375d275a1c5",stateView:"0x76fd297e2d437cd7f76d50f01afe6160f86e9990",universalRouter:"0xa51afafe0263b40edaef0df8781ea9aa03e381a3",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},43114:{name:"avalanche",poolManager:"0x06380c0e0912312b5150364b9dc4542ba0dbbc85",quoter:"0xbe40675bb704506a3c2ccfb762dcfd1e979845c2",stateView:"0xc3c9e198c735a4b97e3e683f391ccbdd60b69286",universalRouter:"0x94b75331ae8d42c1b61065089b7d48fe14aa73b7",weth:"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",usdc:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E"},4663:{name:"robinhood",poolManager:"0x8366a39cc670b4001a1121b8f6a443a643e40951",quoter:"0x8dc178efb8111bb0973dd9d722ebeff267c98f94",stateView:"0xf3334192d15450cdd385c8b70e03f9a6bd9e673b",universalRouter:"0x8876789976dEcBfCbBbe364623C63652db8C0904",weth:"0x0bd7d308f8e1639fab988df18a8011f41eacad73",usdc:"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168"}},Dn=[{fee:100,tickSpacing:1},{fee:500,tickSpacing:10},{fee:3e3,tickSpacing:60},{fee:1e4,tickSpacing:200},{fee:25e3,tickSpacing:8}],Pt=new Ut(["function quoteExactInputSingle(((address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks) poolKey,bool zeroForOne,uint128 exactAmount,bytes hookData) params) returns (uint256 amountOut, uint256 gasEstimate)","function quoteExactOutputSingle(((address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks) poolKey,bool zeroForOne,uint128 exactAmount,bytes hookData) params) returns (uint256 amountIn, uint256 gasEstimate)"]),Qa=new Ut(["function execute(bytes commands,bytes[] inputs,uint256 deadline) payable"]);var Mn="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function qn(e){let t=Number(e),r=X[t];if(!r)throw new Error(`uniswap-v4: unsupported chainId ${e} (supported: ${Object.keys(X).join(", ")})`);return{chainId:t,...r}}function $t(e,t){let r=X[Number(t)];if(!e||e===Mn||e===K||/^eth$/i.test(String(e)))return B(r.weth);let n=String(e);if(/^weth$/i.test(n))return B(r.weth);if(/^usdc$/i.test(n)||/^usdg$/i.test(n))return B(r.usdc);if(!pe(n))throw new Error(`invalid token address: ${e}`);return B(n)}function Hn({currency0:e,currency1:t,fee:r,tickSpacing:n,hooks:o=K}){let i=B(e),s=B(t);if(i.toLowerCase()===s.toLowerCase())throw new Error("poolKey currencies must differ");let[c,u]=i.toLowerCase()<s.toLowerCase()?[i,s]:[s,i],p=o&&pe(o)?B(o):K;return Fn(Ln.encode(["address","address","uint24","int24","address"],[c,u,Number(r),Number(n),p]))}function Vn({tokenIn:e,tokenOut:t,fee:r,tickSpacing:n,hooks:o=K}){let i=B(e),s=B(t),[c,u]=i.toLowerCase()<s.toLowerCase()?[i,s]:[s,i],p=i.toLowerCase()===c.toLowerCase();return{poolKey:{currency0:c,currency1:u,fee:Number(r),tickSpacing:Number(n),hooks:o&&pe(o)?B(o):K},zeroForOne:p}}var jn=["uniswap-v4","uniswapv4"];async function Ft(e={},t={}){let{chainId:r,quoter:n,poolManager:o,universalRouter:i}=qn(e.chainId??8453),s=$t(e.tokenIn||"WETH",r),c=$t(e.tokenOut||X[r].usdc,r),u=BigInt(e.amountIn??0);if(u<=0n)throw new Error("amountIn required (raw base units)");if(u>0xffffffffffffffffffffffffffffffffn)throw new Error("amountIn exceeds uint128");let p=e.fee!=null&&e.tickSpacing!=null?[{fee:Number(e.fee),tickSpacing:Number(e.tickSpacing)}]:e.tryTiers===!1?[{fee:500,tickSpacing:10}]:[...Dn],f=e.hooks||K,l=[],a=null;for(let h of p){let{poolKey:g,zeroForOne:A}=Vn({tokenIn:s,tokenOut:c,fee:h.fee,tickSpacing:h.tickSpacing,hooks:f}),b=Pt.encodeFunctionData("quoteExactInputSingle",[{poolKey:g,zeroForOne:A,exactAmount:u,hookData:"0x"}]);try{let y=await(t.rpcCall||Z)(r,"eth_call",[{to:n,data:b},"latest"],t);if(!y||y==="0x"){l.push({...h,ok:!1,error:"empty result"});continue}let S=Pt.decodeFunctionResult("quoteExactInputSingle",y),E={fee:h.fee,tickSpacing:h.tickSpacing,ok:!0,amountOut:S[0].toString(),gasEstimate:S[1].toString(),poolKey:g,zeroForOne:A,poolId:Hn({...g})};l.push(E),(!a||BigInt(E.amountOut)>BigInt(a.amountOut))&&(a=E)}catch(y){l.push({...h,ok:!1,error:String(y.message||y).slice(0,160)})}}if(!a){let h=l.map(g=>`${g.fee}/${g.tickSpacing}:${g.error||"fail"}`).join("; ");throw new Error(`uniswap-v4 quote failed chain=${r}: ${h}`)}let d=e.liquidityUsd==null?await le({chainId:r,tokenA:s,tokenB:c,dexIds:jn},t).catch(()=>null):null,m=e.liquidityUsd??d?.liquidityUsd??null;return v({venue:"uniswap-v4",chainId:r,chain:X[r].name,poolManager:o,quoter:n,universalRouter:i||null,tokenIn:s,tokenOut:c,amountIn:u.toString(),fee:a.fee,tickSpacing:a.tickSpacing,hooks:a.poolKey.hooks,poolId:a.poolId,zeroForOne:a.zeroForOne,amountOut:a.amountOut,gasEstimate:a.gasEstimate,liquidityUsd:m,liquiditySource:d,triedTiers:l,best:!0,executionReady:!1,prepareReady:typeof e.recipient=="string"&&pe(e.recipient)&&e.slippageBps!=null},{chainId:r,venue:i||n,amountOut:a.amountOut,liquidityUsd:m,priceChange5m:e.priceChange5m,requestedCapBps:e.maxSlippageBps??e.slippageBps})}R();var zn="https://coins.llama.fi",Gn="https://api.llama.fi";function Xn(e={}){return(e.baseUrl||process.env.DEFILLAMA_COINS_URL||zn).replace(/\/$/,"")}function Kn(e={}){return(e.baseUrl||process.env.DEFILLAMA_API_URL||Gn).replace(/\/$/,"")}async function fe(e,t={}){if(!Array.isArray(e)||!e.length)throw new Error("llamaPrices requires coins[]");let r=e.map(encodeURIComponent).join(",");return I(`${Xn(t)}/prices/current/${r}`,{fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs})}async function Lt(e={}){return I(`${Kn(e)}/protocols`,{fetchImpl:e.fetchImpl,timeoutMs:e.timeoutMs??2e4})}var P=e=>{let t=Number(e);return Number.isFinite(t)?t:null};function me(e){if(!Array.isArray(e))return null;let t=0,r=!1;for(let n of e){let o=P(n?.amountUSD);o!=null&&(t+=o,r=!0)}return r?t:null}async function zt(e,t={}){let r=Me[Number(e)];if(!r)return null;try{let n=await fe([r],t);return P(n?.coins?.[r]?.price)}catch{return null}}var q=e=>String(e??"").toLowerCase().replace(/[^a-z0-9]/g,""),jt=Object.freeze({across:["across"],relay:["relaychain","relay"],lifi:["jumper-(li.fi-powered)","lifi"],stargate:["stargate-v2","stargate-v1","stargate"],hop:["hop-protocol","hop"],debridge:["debridge"],synapse:["synapse"],connext:["connext"],cbridge:["celer-bridge","celer-cbridge","cbridge"],celer:["celer-bridge","celer-cbridge","cbridge"],squid:["squid"],symbiosis:["symbiosis"],wormhole:["wormhole"],mayan:["mayan"],allbridge:["allbridge"],thorchain:["thorchain"]});async function eo(e={}){try{let t=await Lt({...e,baseUrl:e.defillamaApiBaseUrl,timeoutMs:e.defillamaTimeoutMs??Math.min(Number(e.timeoutMs??5e3),5e3)});return Array.isArray(t)?t:[]}catch{return[]}}function to(e,t={}){let r=q(t.tool||t.provider||t.bridge||t.protocol),n=[];return e==="lifi"&&r&&r!=="lifi"&&n.push(...jt[r]||[r]),n.push(...jt[q(e)]||[e]),n}function ro(e,t,r={}){let n=Array.isArray(e)?e:[],o=to(t,r).map(q).filter(Boolean);for(let i of o){let s=n.find(u=>q(u?.slug)===i||q(u?.name)===i),c=P(s?.tvl);if(c!=null)return{liquidityUsd:c,protocol:s?.name??s?.slug??i}}for(let i of o){let s=n.find(u=>{let p=q(u?.category);return!p.includes("bridge")&&!p.includes("crosschain")?!1:q(u?.slug).includes(i)||q(u?.name).includes(i)}),c=P(s?.tvl);if(c!=null)return{liquidityUsd:c,protocol:s?.name??s?.slug??i}}return null}function Pe({chainId:e,tokenIn:t,tokenOut:r,amountIn:n,taker:o,slippageBps:i,decimalsIn:s,decimalsOut:c,nativePriceUsd:u=null,destDecimalsPromise:p=null,opts:f={}}){let l=[];return l.push({source:"lifi",run:async()=>{let a=await _e({fromChain:e,toChain:e,fromToken:t,toToken:r,fromAmount:n},f),d=a?.estimate??a?.[0]?.estimate;return{amountOut:d?.toAmount,minOut:d?.toAmountMin,gasUsd:me(d?.gasCosts),feeUsd:me(d?.feeCosts),oracleFeeBps:a?.oracleFee?.applies?a.oracleFee.bps:0,meta:{tool:a?.tool??a?.toolDetails?.name,oracleFee:a?.oracleFee??null}}}}),s!=null&&l.push({source:"paraswap",run:async()=>{let a=c??(await Promise.resolve(p))?.decimals;if(a==null)throw new Error("paraswap needs destination decimals; none supplied or resolvable");let d=await ht({chainId:e,srcToken:t,destToken:r,amount:n,srcDecimals:s,destDecimals:a},f),m=d?.priceRoute;return{amountOut:m?.destAmount,gasUsd:P(m?.gasCostUSD),oracleFeeBps:d?.oracleFee?.applies?d.oracleFee.bps:0,meta:{bestRoute:m?.bestRoute?.[0]?.swaps?.[0]?.swapExchanges?.[0]?.exchange,oracleFee:d?.oracleFee??null}}}}),process.env.ZEROX_API_KEY&&l.push({source:"0x",run:async()=>{let a=await yt({chainId:e,sellToken:t,buyToken:r,sellAmount:n,taker:o},f),d=null,m=a?.totalNetworkFee,h=await Promise.resolve(u);return m!=null&&h&&(d=Number(m)/1e18*h),{amountOut:a?.buyAmount,minOut:a?.minBuyAmount,gasUsd:d,meta:{source:a?.route?.fills?.[0]?.source}}}}),process.env.ONEINCH_API_KEY&&l.push({source:"1inch",run:async()=>{let a=await St({chainId:e,src:t,dst:r,amount:n},f),d=null;return a?.gas!=null&&u&&(d=null),{amountOut:a?.dstAmount,gasUsd:d,meta:{gasUnits:a?.gas}}}}),l.push({source:"cow",run:async()=>{let a=await Ct({chainId:e,sellToken:t,buyToken:r,sellAmountBeforeFee:String(n),from:o},f),d=a?.quote??a,m=d?.feeAmount;return{amountOut:d?.buyAmount,gasUsd:0,meta:{intent:!0,feeAmountInSellToken:m,settlement:"solver-executed"}}}}),G[Number(e)]&&l.push({source:"uniswap-v3",run:async()=>{let a=await Bt({chainId:e,tokenIn:t,tokenOut:r,amountIn:n},f);return{amountOut:a?.amountOut,minOut:a?.minOut??a?.amountOutMinimum??null,gasUsd:null,liquidityUsd:a?.liquidityUsd??null,meta:{onchain:!0,fee:a?.fee,gasUnits:a?.gasEstimate,quoter:a?.quoter}}}}),X[Number(e)]&&l.push({source:"uniswap-v4",run:async()=>{let a=await Ft({chainId:e,tokenIn:t,tokenOut:r,amountIn:n,recipient:o,slippageBps:i},f);return{amountOut:a?.amountOut,minOut:a?.minOut??a?.amountOutMinimum??null,gasUsd:null,liquidityUsd:a?.liquidityUsd??null,meta:{onchain:!0,venue:"uniswap-v4",fee:a?.fee,tickSpacing:a?.tickSpacing,poolId:a?.poolId,hooks:a?.hooks,gasUnits:a?.gasEstimate,quoter:a?.quoter,poolManager:a?.poolManager,prepareReady:a?.prepareReady===!0,executionReady:!1}}}}),l}function Gt({fromChainId:e,toChainId:t,tokenIn:r,tokenOut:n,amountIn:o,taker:i,opts:s={}}){let c=[],u=null,p=async(f,l={})=>(u||=eo(s),ro(await u,f,l));return c.push({source:"lifi",run:async()=>{let f=await _e({fromChain:e,toChain:t,fromToken:r,toToken:n,fromAmount:o},s),l=f?.estimate??f?.[0]?.estimate,a={tool:f?.tool??f?.toolDetails?.name,durationSeconds:P(l?.executionDuration)},d=await p("lifi",a);return{amountOut:l?.toAmount,minOut:l?.toAmountMin,gasUsd:me(l?.gasCosts),feeUsd:me(l?.feeCosts),oracleFeeBps:f?.oracleFee?.applies?f.oracleFee.bps:0,liquidityUsd:d?.liquidityUsd??null,meta:{...a,liquidityProtocol:d?.protocol,oracleFee:f?.oracleFee??null}}}}),c.push({source:"relay",run:async()=>{let{relayQuote:f}=await Promise.resolve().then(()=>(Be(),Re)),a=(await f({user:i,originChainId:e,destinationChainId:t,originCurrency:r,destinationCurrency:n,amount:String(o)},s))?.details,d={durationSeconds:P(a?.timeEstimate),rate:a?.rate},m=await p("relay",d);return{amountOut:a?.currencyOut?.amount,minOut:a?.currencyOut?.minimumAmount,gasUsd:P(a?.totalImpact?.usd)!=null?Math.abs(P(a.totalImpact.usd)):null,liquidityUsd:m?.liquidityUsd??null,meta:{...d,liquidityProtocol:m?.protocol}}}}),c.push({source:"across",run:async()=>{let{acrossSuggestedFees:f}=await Promise.resolve().then(()=>(Be(),Re)),l=await f({token:r,destinationToken:n,originChainId:e,destinationChainId:t,amount:String(o)},s),a=l?.totalRelayFee?.total,d=null;if(a!=null)try{let h=BigInt(String(o))-BigInt(String(a));h>0n&&(d=h.toString())}catch{}let m=await p("across");return{amountOut:d,gasUsd:null,liquidityUsd:m?.liquidityUsd??null,meta:{derivedFromFees:!0,durationSeconds:P(l?.estimatedFillTimeSec),limits:l?.limits?{min:l.limits.minDeposit,max:l.limits.maxDeposit}:void 0,liquidityProtocol:m?.protocol}}}}),c}var no={1:"ethereum",10:"optimism",56:"bsc",137:"polygon",8453:"base",42161:"arbitrum",43114:"avax"};async function Xt(e,t,r){let n=no[Number(e)];if(!n)return{priceUsd:null,decimals:null};let o=`${n}:${t}`;try{let s=(await fe([o],r))?.coins?.[o],c=Number(s?.price),u=Number(s?.decimals);return{priceUsd:Number.isFinite(c)?c:null,decimals:Number.isFinite(u)?u:null}}catch{return{priceUsd:null,decimals:null}}}async function yi(e,t={}){let{chainId:r,tokenIn:n,tokenOut:o,amountIn:i}=e;if(r==null||!n||!o||i==null)throw new Error("bestSwapRoute requires chainId, tokenIn, tokenOut, amountIn");let s=zt(r,t),c=Xt(r,o,t),u=_t(r,t).catch(()=>null),p=Pe({...e,nativePriceUsd:s,decimalsOut:e.decimalsOut,destDecimalsPromise:c,opts:t}),[f,l,a]=await Promise.all([te(p,{timeoutMs:t.timeoutMs??12e3}),c,u]);s.catch(()=>{});let d=await s.then(g=>g,()=>null),m=we(f,{destPriceUsd:l.priceUsd,destDecimals:e.decimalsOut??l.decimals,liquidityBandBps:t.liquidityBandBps??50,gasPriceWei:a,nativePriceUsd:d}),h=t.maxImpactPct===void 0?25:t.maxImpactPct;if(h!=null&&m.best){let g=m.best.source,b=await qe(async y=>{let S=Pe({...e,amountIn:y.toString(),nativePriceUsd:s,decimalsOut:e.decimalsOut,destDecimalsPromise:c,opts:t}).filter(C=>C.source===g);return S.length?(await te(S,{timeoutMs:t.timeoutMs??12e3}))?.[0]?.amountOut??null:null},i);if(b){let y=He(m,{[g]:b},{maxImpactPct:h});return{kind:"swap",chainId:r,tokenIn:n,tokenOut:o,amountIn:String(i),...y,sourcesTried:p.length,sourcesAnswered:f.filter(S=>S.quality!==N.FAILED).length,note:$e(y,p.length),priceImpact:{[g]:Number(b.impactPct.toFixed(2))}}}}return{kind:"swap",chainId:r,tokenIn:n,tokenOut:o,amountIn:String(i),...m,sourcesTried:p.length,sourcesAnswered:f.filter(g=>g.quality!==N.FAILED).length,note:$e(m,p.length)}}async function Ai(e,t={}){let{fromChainId:r,toChainId:n,tokenIn:o,tokenOut:i,amountIn:s}=e;if(r==null||n==null||!o||!i||s==null)throw new Error("bestBridgeRoute requires fromChainId, toChainId, tokenIn, tokenOut, amountIn");if(Number(r)===Number(n))throw new Error("bestBridgeRoute is for cross-chain; use bestSwapRoute for same-chain");let c=Xt(n,i,t),u=Gt({...e,opts:t}),[p,f]=await Promise.all([te(u,{timeoutMs:t.timeoutMs??15e3}),c]),l=we(p,{destPriceUsd:f.priceUsd,destDecimals:e.decimalsOut??f.decimals,liquidityBandBps:t.liquidityBandBps??50}),a=l.routes.map(d=>({source:d.source,seconds:d.meta?.durationSeconds??null})).filter(d=>d.seconds!=null);return{kind:"bridge",fromChainId:r,toChainId:n,tokenIn:o,tokenOut:i,amountIn:String(s),...l,durations:a,sourcesTried:u.length,sourcesAnswered:p.filter(d=>d.quality!==N.FAILED).length,note:$e(l,u.length)}}function oo(e){let t=e?.meta?.oracleFee;return t?.applies?` \xB7 ${dt(t)}`:""}function $e(e,t){if(!e.best)return"no source returned a usable route";let r=e.routes.length,n=oo(e.best);if(r===1)return`only 1 of ${t} sources answered, so this is the ONLY route, not a proven best one. Treat it as unbenchmarked.`+n;if(e.improvementBps!=null){let o=e.improvementBps,i=o/100;if(o<.01)return`best of ${r} routes, ranked on ${e.rankedOn}: effectively tied with the runner-up (${e.spreadBasis}), inside quote noise. Re-quote before you size up.`+n;let s=i>=.01?`${i.toFixed(2)}%`:`${o.toFixed(2)}bps`;return`best of ${r} routes, ranked on ${e.rankedOn}: ${s} better than the runner-up (${e.spreadBasis})`+n}return`best of ${r} routes, ranked on ${e.rankedOn}. No spread quoted: the top routes report cost differently, so the margin is not comparable.`+n}export{N as QUALITY,Ai as bestBridgeRoute,yi as bestSwapRoute,$e as formatComparisonNote};