UNPKG

setup-cpp

Version:

Install all the tools required for building and testing C++/C projects.

1,680 lines (1,679 loc) 335 kB
import { t as aQ, z as AB } from "../lib.mjs"; import QB from "url"; import de from "events"; import XA from "assert"; import hE from "net"; import Ne from "http"; import we from "stream"; import eQ from "buffer"; import aE from "util"; import EB from "querystring"; import cQ from "stream/web"; import DQ from "node:stream"; import _A from "node:util"; import ye from "node:events"; import eB from "worker_threads"; import BB from "perf_hooks"; import ke from "util/types"; import gB from "tls"; function IB(Q, N) { for (var o = 0; o < N.length; o++) { const e = N[o]; if (typeof e != "string" && !Array.isArray(e)) { for (const A in e) if (A !== "default" && !(A in Q)) { const E = Object.getOwnPropertyDescriptor(e, A); E && Object.defineProperty(Q, A, E.get ? E : { enumerable: !0, get: () => e[A] }); } } } return Object.freeze(Object.defineProperty(Q, Symbol.toStringTag, { value: "Module" })); } var yQ, ME; function bA() { return ME || (ME = 1, yQ = { 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"), kHeadersList: Symbol("headers list"), 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"), 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"), 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"), kHTTP2BuildRequest: Symbol("http2 build request"), kHTTP1BuildRequest: Symbol("http1 build request"), kHTTP2CopyHeaders: Symbol("http2 copy headers"), kHTTPConnVersion: Symbol("http connection version"), kRetryHandlerDefaultRetry: Symbol("retry agent default retry"), kConstruct: Symbol("constructable") }), yQ; } var kQ, JE; function PA() { if (JE) return kQ; JE = 1; class Q extends Error { constructor(t) { super(t), this.name = "UndiciError", this.code = "UND_ERR"; } } class N extends Q { constructor(t) { super(t), Error.captureStackTrace(this, N), this.name = "ConnectTimeoutError", this.message = t || "Connect Timeout Error", this.code = "UND_ERR_CONNECT_TIMEOUT"; } } class o extends Q { constructor(t) { super(t), Error.captureStackTrace(this, o), this.name = "HeadersTimeoutError", this.message = t || "Headers Timeout Error", this.code = "UND_ERR_HEADERS_TIMEOUT"; } } class e extends Q { constructor(t) { super(t), Error.captureStackTrace(this, e), this.name = "HeadersOverflowError", this.message = t || "Headers Overflow Error", this.code = "UND_ERR_HEADERS_OVERFLOW"; } } class A extends Q { constructor(t) { super(t), Error.captureStackTrace(this, A), this.name = "BodyTimeoutError", this.message = t || "Body Timeout Error", this.code = "UND_ERR_BODY_TIMEOUT"; } } class E extends Q { constructor(t, k, L, R) { super(t), Error.captureStackTrace(this, E), this.name = "ResponseStatusCodeError", this.message = t || "Response Status Code Error", this.code = "UND_ERR_RESPONSE_STATUS_CODE", this.body = R, this.status = k, this.statusCode = k, this.headers = L; } } class i extends Q { constructor(t) { super(t), Error.captureStackTrace(this, i), this.name = "InvalidArgumentError", this.message = t || "Invalid Argument Error", this.code = "UND_ERR_INVALID_ARG"; } } class f extends Q { constructor(t) { super(t), Error.captureStackTrace(this, f), this.name = "InvalidReturnValueError", this.message = t || "Invalid Return Value Error", this.code = "UND_ERR_INVALID_RETURN_VALUE"; } } class n extends Q { constructor(t) { super(t), Error.captureStackTrace(this, n), this.name = "AbortError", this.message = t || "Request aborted", this.code = "UND_ERR_ABORTED"; } } class u extends Q { constructor(t) { super(t), Error.captureStackTrace(this, u), this.name = "InformationalError", this.message = t || "Request information", this.code = "UND_ERR_INFO"; } } class I extends Q { constructor(t) { super(t), Error.captureStackTrace(this, I), this.name = "RequestContentLengthMismatchError", this.message = t || "Request body length does not match content-length header", this.code = "UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"; } } class h extends Q { constructor(t) { super(t), Error.captureStackTrace(this, h), this.name = "ResponseContentLengthMismatchError", this.message = t || "Response body length does not match content-length header", this.code = "UND_ERR_RES_CONTENT_LENGTH_MISMATCH"; } } class w extends Q { constructor(t) { super(t), Error.captureStackTrace(this, w), this.name = "ClientDestroyedError", this.message = t || "The client is destroyed", this.code = "UND_ERR_DESTROYED"; } } class y extends Q { constructor(t) { super(t), Error.captureStackTrace(this, y), this.name = "ClientClosedError", this.message = t || "The client is closed", this.code = "UND_ERR_CLOSED"; } } class l extends Q { constructor(t, k) { super(t), Error.captureStackTrace(this, l), this.name = "SocketError", this.message = t || "Socket error", this.code = "UND_ERR_SOCKET", this.socket = k; } } class C extends Q { constructor(t) { super(t), Error.captureStackTrace(this, C), this.name = "NotSupportedError", this.message = t || "Not supported error", this.code = "UND_ERR_NOT_SUPPORTED"; } } class a extends Q { constructor(t) { super(t), Error.captureStackTrace(this, C), this.name = "MissingUpstreamError", this.message = t || "No upstream has been added to the BalancedPool", this.code = "UND_ERR_BPL_MISSING_UPSTREAM"; } } class c extends Error { constructor(t, k, L) { super(t), Error.captureStackTrace(this, c), this.name = "HTTPParserError", this.code = k ? `HPE_${k}` : void 0, this.data = L ? L.toString() : void 0; } } class F extends Q { constructor(t) { super(t), Error.captureStackTrace(this, F), this.name = "ResponseExceededMaxSizeError", this.message = t || "Response content exceeded max size", this.code = "UND_ERR_RES_EXCEEDED_MAX_SIZE"; } } class S extends Q { constructor(t, k, { headers: L, data: R }) { super(t), Error.captureStackTrace(this, S), this.name = "RequestRetryError", this.message = t || "Request retry error", this.code = "UND_ERR_REQ_RETRY", this.statusCode = k, this.data = R, this.headers = L; } } return kQ = { HTTPParserError: c, UndiciError: Q, HeadersTimeoutError: o, HeadersOverflowError: e, BodyTimeoutError: A, RequestContentLengthMismatchError: I, ConnectTimeoutError: N, ResponseStatusCodeError: E, InvalidArgumentError: i, InvalidReturnValueError: f, RequestAbortedError: n, ClientDestroyedError: w, ClientClosedError: y, InformationalError: u, SocketError: l, NotSupportedError: C, ResponseContentLengthMismatchError: h, BalancedPoolMissingUpstreamError: a, ResponseExceededMaxSizeError: F, RequestRetryError: S }, kQ; } var UQ, GE; function CB() { if (GE) return UQ; GE = 1; const Q = de; class N extends Q { dispatch() { throw new Error("not implemented"); } close() { throw new Error("not implemented"); } destroy() { throw new Error("not implemented"); } } return UQ = N, UQ; } var SQ, bE; function lQ() { if (bE) return SQ; bE = 1; const Q = CB(), { ClientDestroyedError: N, ClientClosedError: o, InvalidArgumentError: e } = PA(), { kDestroy: A, kClose: E, kDispatch: i, kInterceptors: f } = bA(), n = Symbol("destroyed"), u = Symbol("closed"), I = Symbol("onDestroyed"), h = Symbol("onClosed"), w = Symbol("Intercepted Dispatch"); class y extends Q { constructor() { super(), this[n] = !1, this[I] = null, this[u] = !1, this[h] = []; } get destroyed() { return this[n]; } get closed() { return this[u]; } get interceptors() { return this[f]; } set interceptors(C) { if (C) { for (let a = C.length - 1; a >= 0; a--) if (typeof this[f][a] != "function") throw new e("interceptor must be an function"); } this[f] = C; } close(C) { if (C === void 0) return new Promise((c, F) => { this.close((S, J) => S ? F(S) : c(J)); }); if (typeof C != "function") throw new e("invalid callback"); if (this[n]) { queueMicrotask(() => C(new N(), null)); return; } if (this[u]) { this[h] ? this[h].push(C) : queueMicrotask(() => C(null, null)); return; } this[u] = !0, this[h].push(C); const a = () => { const c = this[h]; this[h] = null; for (let F = 0; F < c.length; F++) c[F](null, null); }; this[E]().then(() => this.destroy()).then(() => { queueMicrotask(a); }); } destroy(C, a) { if (typeof C == "function" && (a = C, C = null), a === void 0) return new Promise((F, S) => { this.destroy(C, (J, t) => J ? ( /* istanbul ignore next: should never error */ S(J) ) : F(t)); }); if (typeof a != "function") throw new e("invalid callback"); if (this[n]) { this[I] ? this[I].push(a) : queueMicrotask(() => a(null, null)); return; } C || (C = new N()), this[n] = !0, this[I] = this[I] || [], this[I].push(a); const c = () => { const F = this[I]; this[I] = null; for (let S = 0; S < F.length; S++) F[S](null, null); }; this[A](C).then(() => { queueMicrotask(c); }); } [w](C, a) { if (!this[f] || this[f].length === 0) return this[w] = this[i], this[i](C, a); let c = this[i].bind(this); for (let F = this[f].length - 1; F >= 0; F--) c = this[f][F](c); return this[w] = c, c(C, a); } dispatch(C, a) { if (!a || typeof a != "object") throw new e("handler must be an object"); try { if (!C || typeof C != "object") throw new e("opts must be an object."); if (this[n] || this[I]) throw new N(); if (this[u]) throw new o(); return this[w](C, a); } catch (c) { if (typeof a.onError != "function") throw new e("invalid onError method"); return a.onError(c), !1; } } } return SQ = y, SQ; } var YQ, pE; function tB() { if (pE) return YQ; pE = 1; const Q = 2048, N = Q - 1; class o { constructor() { this.bottom = 0, this.top = 0, this.list = new Array(Q), this.next = null; } isEmpty() { return this.top === this.bottom; } isFull() { return (this.top + 1 & N) === this.bottom; } push(A) { this.list[this.top] = A, this.top = this.top + 1 & N; } shift() { const A = this.list[this.bottom]; return A === void 0 ? null : (this.list[this.bottom] = void 0, this.bottom = this.bottom + 1 & N, A); } } return YQ = class { constructor() { this.head = this.tail = new o(); } isEmpty() { return this.head.isEmpty(); } push(A) { this.head.isFull() && (this.head = this.head.next = new o()), this.head.push(A); } shift() { const A = this.tail, E = A.shift(); return A.isEmpty() && A.next !== null && (this.tail = A.next), E; } }, YQ; } var LQ, mE; function iB() { if (mE) return LQ; mE = 1; const { kFree: Q, kConnected: N, kPending: o, kQueued: e, kRunning: A, kSize: E } = bA(), i = Symbol("pool"); class f { constructor(u) { this[i] = u; } get connected() { return this[i][N]; } get free() { return this[i][Q]; } get pending() { return this[i][o]; } get queued() { return this[i][e]; } get running() { return this[i][A]; } get size() { return this[i][E]; } } return LQ = f, LQ; } var MQ, VE; function sB() { if (VE) return MQ; VE = 1; const Q = lQ(), N = tB(), { kConnected: o, kSize: e, kRunning: A, kPending: E, kQueued: i, kBusy: f, kFree: n, kUrl: u, kClose: I, kDestroy: h, kDispatch: w } = bA(), y = iB(), l = Symbol("clients"), C = Symbol("needDrain"), a = Symbol("queue"), c = Symbol("closed resolve"), F = Symbol("onDrain"), S = Symbol("onConnect"), J = Symbol("onDisconnect"), t = Symbol("onConnectionError"), k = Symbol("get dispatcher"), L = Symbol("add client"), R = Symbol("remove client"), b = Symbol("stats"); class m extends Q { constructor() { super(), this[a] = new N(), this[l] = [], this[i] = 0; const Y = this; this[F] = function(T, iA) { const tA = Y[a]; let AA = !1; for (; !AA; ) { const K = tA.shift(); if (!K) break; Y[i]--, AA = !this.dispatch(K.opts, K.handler); } this[C] = AA, !this[C] && Y[C] && (Y[C] = !1, Y.emit("drain", T, [Y, ...iA])), Y[c] && tA.isEmpty() && Promise.all(Y[l].map((K) => K.close())).then(Y[c]); }, this[S] = (H, T) => { Y.emit("connect", H, [Y, ...T]); }, this[J] = (H, T, iA) => { Y.emit("disconnect", H, [Y, ...T], iA); }, this[t] = (H, T, iA) => { Y.emit("connectionError", H, [Y, ...T], iA); }, this[b] = new y(this); } get [f]() { return this[C]; } get [o]() { return this[l].filter((Y) => Y[o]).length; } get [n]() { return this[l].filter((Y) => Y[o] && !Y[C]).length; } get [E]() { let Y = this[i]; for (const { [E]: H } of this[l]) Y += H; return Y; } get [A]() { let Y = 0; for (const { [A]: H } of this[l]) Y += H; return Y; } get [e]() { let Y = this[i]; for (const { [e]: H } of this[l]) Y += H; return Y; } get stats() { return this[b]; } async [I]() { return this[a].isEmpty() ? Promise.all(this[l].map((Y) => Y.close())) : new Promise((Y) => { this[c] = Y; }); } async [h](Y) { for (; ; ) { const H = this[a].shift(); if (!H) break; H.handler.onError(Y); } return Promise.all(this[l].map((H) => H.destroy(Y))); } [w](Y, H) { const T = this[k](); return T ? T.dispatch(Y, H) || (T[C] = !0, this[C] = !this[k]()) : (this[C] = !0, this[a].push({ opts: Y, handler: H }), this[i]++), !this[C]; } [L](Y) { return Y.on("drain", this[F]).on("connect", this[S]).on("disconnect", this[J]).on("connectionError", this[t]), this[l].push(Y), this[C] && process.nextTick(() => { this[C] && this[F](Y[u], [this, Y]); }), this; } [R](Y) { Y.close(() => { const H = this[l].indexOf(Y); H !== -1 && this[l].splice(H, 1); }), this[C] = this[l].some((H) => !H[C] && H.closed !== !0 && H.destroyed !== !0); } } return MQ = { PoolBase: m, kClients: l, kNeedDrain: C, kAddClient: L, kRemoveClient: R, kGetDispatcher: k }, MQ; } var JQ, HE; function rB() { if (HE) return JQ; HE = 1; const Q = {}, N = [ "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 o = 0; o < N.length; ++o) { const e = N[o], A = e.toLowerCase(); Q[e] = Q[A] = A; } return Object.setPrototypeOf(Q, null), JQ = { wellknownHeaderNames: N, headerNameLowerCasedRecord: Q }, JQ; } var GQ, xE; function TA() { if (xE) return GQ; xE = 1; const Q = XA, { kDestroyed: N, kBodyUsed: o } = bA(), { IncomingMessage: e } = Ne, A = we, E = hE, { InvalidArgumentError: i } = PA(), { Blob: f } = eQ, n = aE, { stringify: u } = EB, { headerNameLowerCasedRecord: I } = rB(), [h, w] = process.versions.node.split(".").map((B) => Number(B)); function y() { } function l(B) { return B && typeof B == "object" && typeof B.pipe == "function" && typeof B.on == "function"; } function C(B) { return f && B instanceof f || B && typeof B == "object" && (typeof B.stream == "function" || typeof B.arrayBuffer == "function") && /^(Blob|File)$/.test(B[Symbol.toStringTag]); } function a(B, V) { if (B.includes("?") || B.includes("#")) throw new Error('Query params cannot be passed when url already contains "?" or "#".'); const v = u(V); return v && (B += "?" + v), B; } function c(B) { if (typeof B == "string") { if (B = new URL(B), !/^https?:/.test(B.origin || B.protocol)) throw new i("Invalid URL protocol: the URL must start with `http:` or `https:`."); return B; } if (!B || typeof B != "object") throw new i("Invalid URL: The URL argument must be a non-null object."); if (!/^https?:/.test(B.origin || B.protocol)) throw new i("Invalid URL protocol: the URL must start with `http:` or `https:`."); if (!(B instanceof URL)) { if (B.port != null && B.port !== "" && !Number.isFinite(parseInt(B.port))) throw new i("Invalid URL: port must be a valid integer or a string representation of an integer."); if (B.path != null && typeof B.path != "string") throw new i("Invalid URL path: the path must be a string or null/undefined."); if (B.pathname != null && typeof B.pathname != "string") throw new i("Invalid URL pathname: the pathname must be a string or null/undefined."); if (B.hostname != null && typeof B.hostname != "string") throw new i("Invalid URL hostname: the hostname must be a string or null/undefined."); if (B.origin != null && typeof B.origin != "string") throw new i("Invalid URL origin: the origin must be a string or null/undefined."); const V = B.port != null ? B.port : B.protocol === "https:" ? 443 : 80; let v = B.origin != null ? B.origin : `${B.protocol}//${B.hostname}:${V}`, EA = B.path != null ? B.path : `${B.pathname || ""}${B.search || ""}`; v.endsWith("/") && (v = v.substring(0, v.length - 1)), EA && !EA.startsWith("/") && (EA = `/${EA}`), B = new URL(v + EA); } return B; } function F(B) { if (B = c(B), B.pathname !== "/" || B.search || B.hash) throw new i("invalid url"); return B; } function S(B) { if (B[0] === "[") { const v = B.indexOf("]"); return Q(v !== -1), B.substring(1, v); } const V = B.indexOf(":"); return V === -1 ? B : B.substring(0, V); } function J(B) { if (!B) return null; Q.strictEqual(typeof B, "string"); const V = S(B); return E.isIP(V) ? "" : V; } function t(B) { return JSON.parse(JSON.stringify(B)); } function k(B) { return B != null && typeof B[Symbol.asyncIterator] == "function"; } function L(B) { return B != null && (typeof B[Symbol.iterator] == "function" || typeof B[Symbol.asyncIterator] == "function"); } function R(B) { if (B == null) return 0; if (l(B)) { const V = B._readableState; return V && V.objectMode === !1 && V.ended === !0 && Number.isFinite(V.length) ? V.length : null; } else { if (C(B)) return B.size != null ? B.size : null; if (AA(B)) return B.byteLength; } return null; } function b(B) { return !B || !!(B.destroyed || B[N]); } function m(B) { const V = B && B._readableState; return b(B) && V && !V.endEmitted; } function W(B, V) { B == null || !l(B) || b(B) || (typeof B.destroy == "function" ? (Object.getPrototypeOf(B).constructor === e && (B.socket = null), B.destroy(V)) : V && process.nextTick((v, EA) => { v.emit("error", EA); }, B, V), B.destroyed !== !0 && (B[N] = !0)); } const Y = /timeout=(\d+)/; function H(B) { const V = B.toString().match(Y); return V ? parseInt(V[1], 10) * 1e3 : null; } function T(B) { return I[B] || B.toLowerCase(); } function iA(B, V = {}) { if (!Array.isArray(B)) return B; for (let v = 0; v < B.length; v += 2) { const EA = B[v].toString().toLowerCase(); let eA = V[EA]; eA ? (Array.isArray(eA) || (eA = [eA], V[EA] = eA), eA.push(B[v + 1].toString("utf8"))) : Array.isArray(B[v + 1]) ? V[EA] = B[v + 1].map((IA) => IA.toString("utf8")) : V[EA] = B[v + 1].toString("utf8"); } return "content-length" in V && "content-disposition" in V && (V["content-disposition"] = Buffer.from(V["content-disposition"]).toString("latin1")), V; } function tA(B) { const V = []; let v = !1, EA = -1; for (let eA = 0; eA < B.length; eA += 2) { const IA = B[eA + 0].toString(), aA = B[eA + 1].toString("utf8"); IA.length === 14 && (IA === "content-length" || IA.toLowerCase() === "content-length") ? (V.push(IA, aA), v = !0) : IA.length === 19 && (IA === "content-disposition" || IA.toLowerCase() === "content-disposition") ? EA = V.push(IA, aA) - 1 : V.push(IA, aA); } return v && EA !== -1 && (V[EA] = Buffer.from(V[EA]).toString("latin1")), V; } function AA(B) { return B instanceof Uint8Array || Buffer.isBuffer(B); } function K(B, V, v) { if (!B || typeof B != "object") throw new i("handler must be an object"); if (typeof B.onConnect != "function") throw new i("invalid onConnect method"); if (typeof B.onError != "function") throw new i("invalid onError method"); if (typeof B.onBodySent != "function" && B.onBodySent !== void 0) throw new i("invalid onBodySent method"); if (v || V === "CONNECT") { if (typeof B.onUpgrade != "function") throw new i("invalid onUpgrade method"); } else { if (typeof B.onHeaders != "function") throw new i("invalid onHeaders method"); if (typeof B.onData != "function") throw new i("invalid onData method"); if (typeof B.onComplete != "function") throw new i("invalid onComplete method"); } } function wA(B) { return !!(B && (A.isDisturbed ? A.isDisturbed(B) || B[o] : B[o] || B.readableDidRead || B._readableState && B._readableState.dataEmitted || m(B))); } function RA(B) { return !!(B && (A.isErrored ? A.isErrored(B) : /state: 'errored'/.test( n.inspect(B) ))); } function lA(B) { return !!(B && (A.isReadable ? A.isReadable(B) : /state: 'readable'/.test( n.inspect(B) ))); } function uA(B) { return { localAddress: B.localAddress, localPort: B.localPort, remoteAddress: B.remoteAddress, remotePort: B.remotePort, remoteFamily: B.remoteFamily, timeout: B.timeout, bytesWritten: B.bytesWritten, bytesRead: B.bytesRead }; } async function* UA(B) { for await (const V of B) yield Buffer.isBuffer(V) ? V : Buffer.from(V); } let G; function sA(B) { if (G || (G = cQ.ReadableStream), G.from) return G.from(UA(B)); let V; return new G( { async start() { V = B[Symbol.asyncIterator](); }, async pull(v) { const { done: EA, value: eA } = await V.next(); if (EA) queueMicrotask(() => { v.close(); }); else { const IA = Buffer.isBuffer(eA) ? eA : Buffer.from(eA); v.enqueue(new Uint8Array(IA)); } return v.desiredSize > 0; }, async cancel(v) { await V.return(); } }, 0 ); } function q(B) { return B && typeof B == "object" && typeof B.append == "function" && typeof B.delete == "function" && typeof B.get == "function" && typeof B.getAll == "function" && typeof B.has == "function" && typeof B.set == "function" && B[Symbol.toStringTag] === "FormData"; } function X(B) { if (B) { if (typeof B.throwIfAborted == "function") B.throwIfAborted(); else if (B.aborted) { const V = new Error("The operation was aborted"); throw V.name = "AbortError", V; } } } function O(B, V) { return "addEventListener" in B ? (B.addEventListener("abort", V, { once: !0 }), () => B.removeEventListener("abort", V)) : (B.addListener("abort", V), () => B.removeListener("abort", V)); } const Z = !!String.prototype.toWellFormed; function nA(B) { return Z ? `${B}`.toWellFormed() : n.toUSVString ? n.toUSVString(B) : `${B}`; } function gA(B) { if (B == null || B === "") return { start: 0, end: null, size: null }; const V = B ? B.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null; return V ? { start: parseInt(V[1]), end: V[2] ? parseInt(V[2]) : null, size: V[3] ? parseInt(V[3]) : null } : null; } const rA = /* @__PURE__ */ Object.create(null); return rA.enumerable = !0, GQ = { kEnumerableProperty: rA, nop: y, isDisturbed: wA, isErrored: RA, isReadable: lA, toUSVString: nA, isReadableAborted: m, isBlobLike: C, parseOrigin: F, parseURL: c, getServerName: J, isStream: l, isIterable: L, isAsyncIterable: k, isDestroyed: b, headerNameToString: T, parseRawHeaders: tA, parseHeaders: iA, parseKeepAliveTimeout: H, destroy: W, bodyLength: R, deepClone: t, ReadableStreamFrom: sA, isBuffer: AA, validateHandler: K, getSocketInfo: uA, isFormDataLike: q, buildURL: a, throwIfAborted: X, addAbortListener: O, parseRangeHeader: gA, nodeMajor: h, nodeMinor: w, nodeHasAutoSelectFamily: h > 18 || h === 18 && w >= 13, safeHTTPMethods: ["GET", "HEAD", "OPTIONS", "TRACE"] }, GQ; } var bQ, TE; function oB() { if (TE) return bQ; TE = 1; let Q = Date.now(), N; const o = []; function e() { Q = Date.now(); let i = o.length, f = 0; for (; f < i; ) { const n = o[f]; n.state === 0 ? n.state = Q + n.delay : n.state > 0 && Q >= n.state && (n.state = -1, n.callback(n.opaque)), n.state === -1 ? (n.state = -2, f !== i - 1 ? o[f] = o.pop() : o.pop(), i -= 1) : f += 1; } o.length > 0 && A(); } function A() { N && N.refresh ? N.refresh() : (clearTimeout(N), N = setTimeout(e, 1e3), N.unref && N.unref()); } class E { constructor(f, n, u) { this.callback = f, this.delay = n, this.opaque = u, this.state = -2, this.refresh(); } refresh() { this.state === -2 && (o.push(this), (!N || o.length === 1) && A()), this.state = 0; } clear() { this.state = -1; } } return bQ = { setTimeout(i, f, n) { return f < 1e3 ? setTimeout(i, f, n) : new E(i, f, n); }, clearTimeout(i) { i instanceof E ? i.clear() : clearTimeout(i); } }, bQ; } var vA = { exports: {} }, pQ, WE; function Ue() { if (WE) return pQ; WE = 1; const Q = ye.EventEmitter, N = _A.inherits; function o(e) { if (typeof e == "string" && (e = Buffer.from(e)), !Buffer.isBuffer(e)) throw new TypeError("The needle has to be a String or a Buffer."); const A = e.length; if (A === 0) throw new Error("The needle cannot be an empty String/Buffer."); if (A > 256) throw new Error("The needle cannot have a length bigger than 256."); this.maxMatches = 1 / 0, this.matches = 0, this._occ = new Array(256).fill(A), this._lookbehind_size = 0, this._needle = e, this._bufpos = 0, this._lookbehind = Buffer.alloc(A); for (var E = 0; E < A - 1; ++E) this._occ[e[E]] = A - 1 - E; } return N(o, Q), o.prototype.reset = function() { this._lookbehind_size = 0, this.matches = 0, this._bufpos = 0; }, o.prototype.push = function(e, A) { Buffer.isBuffer(e) || (e = Buffer.from(e, "binary")); const E = e.length; this._bufpos = A || 0; let i; for (; i !== E && this.matches < this.maxMatches; ) i = this._sbmh_feed(e); return i; }, o.prototype._sbmh_feed = function(e) { const A = e.length, E = this._needle, i = E.length, f = E[i - 1]; let n = -this._lookbehind_size, u; if (n < 0) { for (; n < 0 && n <= A - i; ) { if (u = this._sbmh_lookup_char(e, n + i - 1), u === f && this._sbmh_memcmp(e, n, i - 1)) return this._lookbehind_size = 0, ++this.matches, this.emit("info", !0), this._bufpos = n + i; n += this._occ[u]; } if (n < 0) for (; n < 0 && !this._sbmh_memcmp(e, n, A - n); ) ++n; if (n >= 0) this.emit("info", !1, this._lookbehind, 0, this._lookbehind_size), this._lookbehind_size = 0; else { const I = this._lookbehind_size + n; return I > 0 && this.emit("info", !1, this._lookbehind, 0, I), this._lookbehind.copy( this._lookbehind, 0, I, this._lookbehind_size - I ), this._lookbehind_size -= I, e.copy(this._lookbehind, this._lookbehind_size), this._lookbehind_size += A, this._bufpos = A, A; } } if (n += (n >= 0) * this._bufpos, e.indexOf(E, n) !== -1) return n = e.indexOf(E, n), ++this.matches, n > 0 ? this.emit("info", !0, e, this._bufpos, n) : this.emit("info", !0), this._bufpos = n + i; for (n = A - i; n < A && (e[n] !== E[0] || Buffer.compare( e.subarray(n, n + A - n), E.subarray(0, A - n) ) !== 0); ) ++n; return n < A && (e.copy(this._lookbehind, 0, n, n + (A - n)), this._lookbehind_size = A - n), n > 0 && this.emit("info", !1, e, this._bufpos, n < A ? n : A), this._bufpos = A, A; }, o.prototype._sbmh_lookup_char = function(e, A) { return A < 0 ? this._lookbehind[this._lookbehind_size + A] : e[A]; }, o.prototype._sbmh_memcmp = function(e, A, E) { for (var i = 0; i < E; ++i) if (this._sbmh_lookup_char(e, A + i) !== this._needle[i]) return !1; return !0; }, pQ = o, pQ; } var mQ, qE; function nB() { if (qE) return mQ; qE = 1; const Q = _A.inherits, N = DQ.Readable; function o(e) { N.call(this, e); } return Q(o, N), o.prototype._read = function(e) { }, mQ = o, mQ; } var VQ, PE; function cE() { return PE || (PE = 1, VQ = function(N, o, e) { if (!N || N[o] === void 0 || N[o] === null) return e; if (typeof N[o] != "number" || isNaN(N[o])) throw new TypeError("Limit " + o + " is not a valid number"); return N[o]; }), VQ; } var HQ, ZE; function hB() { if (ZE) return HQ; ZE = 1; const Q = ye.EventEmitter, N = _A.inherits, o = cE(), e = Ue(), A = Buffer.from(`\r \r `), E = /\r\n/g, i = /^([^:]+):[ \t]?([\x00-\xFF]+)?$/; function f(n) { Q.call(this), n = n || {}; const u = this; this.nread = 0, this.maxed = !1, this.npairs = 0, this.maxHeaderPairs = o(n, "maxHeaderPairs", 2e3), this.maxHeaderSize = o(n, "maxHeaderSize", 80 * 1024), this.buffer = "", this.header = {}, this.finished = !1, this.ss = new e(A), this.ss.on("info", function(I, h, w, y) { h && !u.maxed && (u.nread + y - w >= u.maxHeaderSize ? (y = u.maxHeaderSize - u.nread + w, u.nread = u.maxHeaderSize, u.maxed = !0) : u.nread += y - w, u.buffer += h.toString("binary", w, y)), I && u._finish(); }); } return N(f, Q), f.prototype.push = function(n) { const u = this.ss.push(n); if (this.finished) return u; }, f.prototype.reset = function() { this.finished = !1, this.buffer = "", this.header = {}, this.ss.reset(); }, f.prototype._finish = function() { this.buffer && this._parseHeader(), this.ss.matches = this.ss.maxMatches; const n = this.header; this.header = {}, this.buffer = "", this.finished = !0, this.nread = this.npairs = 0, this.maxed = !1, this.emit("header", n); }, f.prototype._parseHeader = function() { if (this.npairs === this.maxHeaderPairs) return; const n = this.buffer.split(E), u = n.length; let I, h; for (var w = 0; w < u; ++w) { if (n[w].length === 0) continue; if ((n[w][0] === " " || n[w][0] === " ") && h) { this.header[h][this.header[h].length - 1] += n[w]; continue; } const y = n[w].indexOf(":"); if (y === -1 || y === 0) return; if (I = i.exec(n[w]), h = I[1].toLowerCase(), this.header[h] = this.header[h] || [], this.header[h].push(I[2] || ""), ++this.npairs === this.maxHeaderPairs) break; } }, HQ = f, HQ; } var xQ, XE; function Se() { if (XE) return xQ; XE = 1; const Q = DQ.Writable, N = _A.inherits, o = Ue(), e = nB(), A = hB(), E = 45, i = Buffer.from("-"), f = Buffer.from(`\r `), n = function() { }; function u(I) { if (!(this instanceof u)) return new u(I); if (Q.call(this, I), !I || !I.headerFirst && typeof I.boundary != "string") throw new TypeError("Boundary required"); typeof I.boundary == "string" ? this.setBoundary(I.boundary) : this._bparser = void 0, this._headerFirst = I.headerFirst, this._dashes = 0, this._parts = 0, this._finished = !1, this._realFinish = !1, this._isPreamble = !0, this._justMatched = !1, this._firstWrite = !0, this._inHeader = !0, this._part = void 0, this._cb = void 0, this._ignoreData = !1, this._partOpts = { highWaterMark: I.partHwm }, this._pause = !1; const h = this; this._hparser = new A(I), this._hparser.on("header", function(w) { h._inHeader = !1, h._part.emit("header", w); }); } return N(u, Q), u.prototype.emit = function(I) { if (I === "finish" && !this._realFinish) { if (!this._finished) { const h = this; process.nextTick(function() { if (h.emit("error", new Error("Unexpected end of multipart data")), h._part && !h._ignoreData) { const w = h._isPreamble ? "Preamble" : "Part"; h._part.emit("error", new Error(w + " terminated early due to unexpected end of multipart data")), h._part.push(null), process.nextTick(function() { h._realFinish = !0, h.emit("finish"), h._realFinish = !1; }); return; } h._realFinish = !0, h.emit("finish"), h._realFinish = !1; }); } } else Q.prototype.emit.apply(this, arguments); }, u.prototype._write = function(I, h, w) { if (!this._hparser && !this._bparser) return w(); if (this._headerFirst && this._isPreamble) { this._part || (this._part = new e(this._partOpts), this.listenerCount("preamble") !== 0 ? this.emit("preamble", this._part) : this._ignore()); const y = this._hparser.push(I); if (!this._inHeader && y !== void 0 && y < I.length) I = I.slice(y); else return w(); } this._firstWrite && (this._bparser.push(f), this._firstWrite = !1), this._bparser.push(I), this._pause ? this._cb = w : w(); }, u.prototype.reset = function() { this._part = void 0, this._bparser = void 0, this._hparser = void 0; }, u.prototype.setBoundary = function(I) { const h = this; this._bparser = new o(`\r --` + I), this._bparser.on("info", function(w, y, l, C) { h._oninfo(w, y, l, C); }); }, u.prototype._ignore = function() { this._part && !this._ignoreData && (this._ignoreData = !0, this._part.on("error", n), this._part.resume()); }, u.prototype._oninfo = function(I, h, w, y) { let l; const C = this; let a = 0, c, F = !0; if (!this._part && this._justMatched && h) { for (; this._dashes < 2 && w + a < y; ) if (h[w + a] === E) ++a, ++this._dashes; else { this._dashes && (l = i), this._dashes = 0; break; } if (this._dashes === 2 && (w + a < y && this.listenerCount("trailer") !== 0 && this.emit("trailer", h.slice(w + a, y)), this.reset(), this._finished = !0, C._parts === 0 && (C._realFinish = !0, C.emit("finish"), C._realFinish = !1)), this._dashes) return; } this._justMatched && (this._justMatched = !1), this._part || (this._part = new e(this._partOpts), this._part._read = function(S) { C._unpause(); }, this._isPreamble && this.listenerCount("preamble") !== 0 ? this.emit("preamble", this._part) : this._isPreamble !== !0 && this.listenerCount("part") !== 0 ? this.emit("part", this._part) : this._ignore(), this._isPreamble || (this._inHeader = !0)), h && w < y && !this._ignoreData && (this._isPreamble || !this._inHeader ? (l && (F = this._part.push(l)), F = this._part.push(h.slice(w, y)), F || (this._pause = !0)) : !this._isPreamble && this._inHeader && (l && this._hparser.push(l), c = this._hparser.push(h.slice(w, y)), !this._inHeader && c !== void 0 && c < y && this._oninfo(!1, h, w + c, y))), I && (this._hparser.reset(), this._isPreamble ? this._isPreamble = !1 : w !== y && (++this._parts, this._part.on("end", function() { --C._parts === 0 && (C._finished ? (C._realFinish = !0, C.emit("finish"), C._realFinish = !1) : C._unpause()); })), this._part.push(null), this._part = void 0, this._ignoreData = !1, this._justMatched = !0, this._dashes = 0); }, u.prototype._unpause = function() { if (this._pause && (this._pause = !1, this._cb)) { const I = this._cb; this._cb = void 0, I(); } }, xQ = u, xQ; } var TQ, OE; function DE() { if (OE) return TQ; OE = 1; const Q = new TextDecoder("utf-8"), N = /* @__PURE__ */ new Map([ ["utf-8", Q], ["utf8", Q] ]); function o(E) { let i; for (; ; ) switch (E) { case "utf-8": case "utf8": return e.utf8; case "latin1": case "ascii": // TODO: Make these a separate, strict decoder? case "us-ascii": case "iso-8859-1": case "iso8859-1": case "iso88591": case "iso_8859-1": case "windows-1252": case "iso_8859-1:1987": case "cp1252": case "x-cp1252": return e.latin1; case "utf16le": case "utf-16le": case "ucs2": case "ucs-2": return e.utf16le; case "base64": return e.base64; default: if (i === void 0) { i = !0, E = E.toLowerCase(); continue; } return e.other.bind(E); } } const e = { utf8: (E, i) => E.length === 0 ? "" : (typeof E == "string" && (E = Buffer.from(E, i)), E.utf8Slice(0, E.length)), latin1: (E, i) => E.length === 0 ? "" : typeof E == "string" ? E : E.latin1Slice(0, E.length), utf16le: (E, i) => E.length === 0 ? "" : (typeof E == "string" && (E = Buffer.from(E, i)), E.ucs2Slice(0, E.length)), base64: (E, i) => E.length === 0 ? "" : (typeof E == "string" && (E = Buffer.from(E, i)), E.base64Slice(0, E.length)), other: (E, i) => { if (E.length === 0) return ""; if (typeof E == "string" && (E = Buffer.from(E, i)), N.has(this.toString())) try { return N.get(this).decode(E); } catch { } return typeof E == "string" ? E : E.toString(); } }; function A(E, i, f) { return E && o(f)(E, i); } return TQ = A, TQ; } var WQ, KE; function Ye() { if (KE) return WQ; KE = 1; const Q = DE(), N = /%[a-fA-F0-9][a-fA-F0-9]/g, o = { "%00": "\0", "%01": "", "%02": "", "%03": "", "%04": "", "%05": "", "%06": "", "%07": "\x07", "%08": "\b", "%09": " ", "%0a": ` `, "%0A": ` `, "%0b": "\v", "%0B": "\v", "%0c": "\f", "%0C": "\f", "%0d": "\r", "%0D": "\r", "%0e": "", "%0E": "", "%0f": "", "%0F": "", "%10": "", "%11": "", "%12": "", "%13": "", "%14": "", "%15": "", "%16": "", "%17": "", "%18": "", "%19": "", "%1a": "", "%1A": "", "%1b": "\x1B", "%1B": "\x1B", "%1c": "", "%1C": "", "%1d": "", "%1D": "", "%1e": "", "%1E": "", "%1f": "", "%1F": "", "%20": " ", "%21": "!", "%22": '"', "%23": "#", "%24": "$", "%25": "%", "%26": "&", "%27": "'", "%28": "(", "%29": ")", "%2a": "*", "%2A": "*", "%2b": "+", "%2B": "+", "%2c": ",", "%2C": ",", "%2d": "-", "%2D": "-", "%2e": ".", "%2E": ".", "%2f": "/", "%2F": "/", "%30": "0", "%31": "1", "%32": "2", "%33": "3", "%34": "4", "%35": "5", "%36": "6", "%37": "7", "%38": "8", "%39": "9", "%3a": ":", "%3A": ":", "%3b": ";", "%3B": ";", "%3c": "<", "%3C": "<", "%3d": "=", "%3D": "=", "%3e": ">", "%3E": ">", "%3f": "?", "%3F": "?", "%40": "@", "%41": "A", "%42": "B", "%43": "C", "%44": "D", "%45": "E", "%46": "F", "%47": "G", "%48": "H", "%49": "I", "%4a": "J", "%4A": "J", "%4b": "K", "%4B": "K", "%4c": "L", "%4C": "L", "%4d": "M", "%4D": "M", "%4e": "N", "%4E": "N", "%4f": "O", "%4F": "O", "%50": "P", "%51": "Q", "%52": "R", "%53": "S", "%54": "T", "%55": "U", "%56": "V", "%57": "W", "%58": "X", "%59": "Y", "%5a": "Z", "%5A": "Z", "%5b": "[", "%5B": "[", "%5c": "\\", "%5C": "\\", "%5d": "]", "%5D": "]", "%5e": "^", "%5E": "^", "%5f": "_", "%5F": "_", "%60": "`", "%61": "a", "%62": "b", "%63": "c", "%64": "d", "%65": "e", "%66": "f", "%67": "g", "%68": "h", "%69": "i", "%6a": "j", "%6A": "j", "%6b": "k", "%6B": "k", "%6c": "l", "%6C": "l", "%6d": "m", "%6D": "m", "%6e": "n", "%6E": "n", "%6f": "o", "%6F": "o", "%70": "p", "%71": "q", "%72": "r", "%73": "s", "%74": "t", "%75": "u", "%76": "v", "%77": "w", "%78": "x", "%79": "y", "%7a": "z", "%7A": "z", "%7b": "{", "%7B": "{", "%7c": "|", "%7C": "|", "%7d": "}", "%7D": "}", "%7e": "~", "%7E": "~", "%7f": "", "%7F": "", "%80": "€", "%81": "", "%82": "‚", "%83": "ƒ", "%84": "„", "%85": "…", "%86": "†", "%87": "‡", "%88": "ˆ", "%89": "‰", "%8a": "Š", "%8A": "Š", "%8b": "‹", "%8B": "‹", "%8c": "Œ", "%8C": "Œ", "%8d": "", "%8D": "", "%8e": "Ž", "%8E": "Ž", "%8f": "", "%8F": "", "%90": "", "%91": "‘", "%92": "’", "%93": "“", "%94": "”", "%95": "•", "%96": "–", "%97": "—", "%98": "˜", "%99": "™", "%9a": "š", "%9A": "š", "%9b": "›", "%9B": "›", "%9c": "œ", "%9C": "œ", "%9d": "", "%9D": "", "%9e": "ž", "%9E": "ž", "%9f": "Ÿ", "%9F": "Ÿ", "%a0": " ", "%A0": " ", "%a1": "¡", "%A1": "¡", "%a2": "¢", "%A2": "¢", "%a3": "£", "%A3": "£", "%a4": "¤", "%A4": "¤", "%a5": "¥", "%A5": "¥", "%a6": "¦", "%A6": "¦", "%a7": "§", "%A7": "§", "%a8": "¨", "%A8": "¨", "%a9": "©", "%A9": "©", "%aa": "ª", "%Aa": "ª", "%aA": "ª", "%AA": "ª", "%ab": "«", "%Ab": "«", "%aB": "«", "%AB": "«", "%ac": "¬", "%Ac": "¬", "%aC": "¬", "%AC": "¬", "%ad": "­", "%Ad": "­", "%aD": "­", "%AD": "­", "%ae": "®", "%Ae": "®", "%aE": "®", "%AE": "®", "%af": "¯", "%Af": "¯", "%aF": "¯", "%AF": "¯", "%b0": "°", "%B0": "°", "%b1": "±", "%B1": "±", "%b2": "²", "%B2": "²", "%b3": "³", "%B3": "³", "%b4": "´", "%B4": "´", "%b5": "µ", "%B5": "µ", "%b6": "¶", "%B6": "¶", "%b7": "·", "%B7": "·", "%b8": "¸", "%B8": "¸", "%b9": "¹", "%B9": "¹", "%ba": "º", "%Ba": "º", "%bA": "º", "%BA": "º", "%bb": "»", "%Bb": "»", "%bB": "»", "%BB": "»", "%bc": "¼", "%Bc": "¼", "%bC": "¼", "%BC": "¼", "%bd": "½", "%Bd": "½", "%bD": "½", "%BD": "½", "%be": "¾", "%Be": "¾", "%bE": "¾", "%BE": "¾", "%bf": "¿", "%Bf": "¿", "%bF": "¿", "%BF": "¿", "%c0": "À", "%C0": "À", "%c1": "Á", "%C1": "Á", "%c2": "Â", "%C2": "Â", "%c3": "Ã", "%C3": "Ã", "%c4": "Ä", "%C4": "Ä", "%c5": "Å", "%C5": "Å", "%c6": "Æ", "%C6": "Æ", "%c7": "Ç", "%C7": "Ç", "%c8": "È", "%C8": "È", "%c9": "É", "%C9": "É", "%ca": "Ê", "%Ca": "Ê", "%cA": "Ê", "%CA": "Ê", "%cb": "Ë", "%Cb": "Ë", "%cB": "Ë", "%CB": "Ë", "%cc": "Ì", "%Cc": "Ì", "%cC": "Ì", "%CC": "Ì", "%cd": "Í", "%Cd": "Í", "%cD": "Í", "%CD": "Í", "%ce": "Î", "%Ce": "Î", "%cE": "Î", "%CE": "Î", "%cf": "Ï", "%Cf": "Ï", "%cF": "Ï", "%CF": "Ï", "%d0": "Ð", "%D0": "Ð", "%d1": "Ñ", "%D1": "Ñ", "%d2": "Ò", "%D2": "Ò", "%d3": "Ó", "%D3": "Ó", "%d4": "Ô", "%D4": "Ô", "%d5": "Õ", "%D5": "Õ", "%d6": "Ö", "%D6": "Ö", "%d7": "×", "%D7": "×", "%d8": "Ø", "%D8": "Ø", "%d9": "Ù", "%D9": "Ù", "%da": "Ú", "%Da": "Ú", "%dA": "Ú", "%DA": "Ú", "%db": "Û", "%Db": "Û", "%dB": "Û", "%DB": "Û", "%dc": "Ü", "%Dc": "Ü", "%dC": "Ü", "%DC": "Ü", "%dd": "Ý", "%Dd": "Ý", "%dD": "Ý", "%DD": "Ý", "%de": "Þ", "%De": "Þ", "%dE": "Þ", "%DE": "Þ", "%df": "ß", "%Df": "ß", "%dF": "ß", "%DF": "ß", "%e0": "à", "%E0": "à", "%e1": "á", "%E1": "á", "%e2": "â", "%E2": "â", "%e3": "ã", "%E3": "ã", "%e4": "ä", "%E4": "ä", "%e5": "å", "%E5": "å", "%e6": "æ", "%E6": "æ", "%e7": "ç", "%E7": "ç", "%e8": "è", "%E8": "è", "%e9": "é", "%E9": "é", "%ea": "ê", "%Ea": "ê", "%eA": "ê", "%EA": "ê", "%eb": "ë", "%Eb": "ë", "%eB": "ë", "%EB": "ë", "%ec": "ì", "%Ec": "ì", "%eC": "ì", "%EC": "ì", "%ed": "í", "%Ed": "í", "%eD": "í", "%ED": "í", "%ee": "î", "%Ee": "î", "%eE": "î", "%EE": "î", "%ef": "ï", "%Ef": "ï", "%eF": "ï", "%EF": "ï", "%f0": "ð", "%F0": "ð", "%f1": "ñ", "%F1": "ñ", "%f2": "ò", "%F2": "ò", "%f3": "ó",