"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // node_modules/tunnel/lib/tunnel.js var require_tunnel = __commonJS({ "node_modules/tunnel/lib/tunnel.js"(exports2) { "use strict"; var net = require("net"); var tls = require("tls"); var http2 = require("http"); var https2 = require("https"); var events = require("events"); var assert = require("assert"); var util2 = require("util"); exports2.httpOverHttp = httpOverHttp2; exports2.httpsOverHttp = httpsOverHttp2; exports2.httpOverHttps = httpOverHttps2; exports2.httpsOverHttps = httpsOverHttps2; function httpOverHttp2(options) { var agent = new TunnelingAgent(options); agent.request = http2.request; return agent; } function httpsOverHttp2(options) { var agent = new TunnelingAgent(options); agent.request = http2.request; agent.createSocket = createSecureSocket; agent.defaultPort = 443; return agent; } function httpOverHttps2(options) { var agent = new TunnelingAgent(options); agent.request = https2.request; return agent; } function httpsOverHttps2(options) { var agent = new TunnelingAgent(options); agent.request = https2.request; agent.createSocket = createSecureSocket; agent.defaultPort = 443; return agent; } function TunnelingAgent(options) { var self = this; self.options = options || {}; self.proxyOptions = self.options.proxy || {}; self.maxSockets = self.options.maxSockets || http2.Agent.defaultMaxSockets; self.requests = []; self.sockets = []; self.on("free", function onFree(socket, host, port, localAddress) { var options2 = toOptions(host, port, localAddress); for (var i = 0, len = self.requests.length; i < len; ++i) { var pending = self.requests[i]; if (pending.host === options2.host && pending.port === options2.port) { self.requests.splice(i, 1); pending.request.onSocket(socket); return; } } socket.destroy(); self.removeSocket(socket); }); } util2.inherits(TunnelingAgent, events.EventEmitter); TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { var self = this; var options = mergeOptions({ request: req }, self.options, toOptions(host, port, localAddress)); if (self.sockets.length >= this.maxSockets) { self.requests.push(options); return; } self.createSocket(options, function(socket) { socket.on("free", onFree); socket.on("close", onCloseOrRemove); socket.on("agentRemove", onCloseOrRemove); req.onSocket(socket); function onFree() { self.emit("free", socket, options); } function onCloseOrRemove(err) { self.removeSocket(socket); socket.removeListener("free", onFree); socket.removeListener("close", onCloseOrRemove); socket.removeListener("agentRemove", onCloseOrRemove); } }); }; TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { var self = this; var placeholder = {}; self.sockets.push(placeholder); var connectOptions = mergeOptions({}, self.proxyOptions, { method: "CONNECT", path: options.host + ":" + options.port, agent: false, headers: { host: options.host + ":" + options.port } }); if (options.localAddress) { connectOptions.localAddress = options.localAddress; } if (connectOptions.proxyAuth) { connectOptions.headers = connectOptions.headers || {}; connectOptions.headers["Proxy-Authorization"] = "Basic " + new Buffer(connectOptions.proxyAuth).toString("base64"); } debug2("making CONNECT request"); var connectReq = self.request(connectOptions); connectReq.useChunkedEncodingByDefault = false; connectReq.once("response", onResponse); connectReq.once("upgrade", onUpgrade); connectReq.once("connect", onConnect); connectReq.once("error", onError); connectReq.end(); function onResponse(res) { res.upgrade = true; } function onUpgrade(res, socket, head) { process.nextTick(function() { onConnect(res, socket, head); }); } function onConnect(res, socket, head) { connectReq.removeAllListeners(); socket.removeAllListeners(); if (res.statusCode !== 200) { debug2( "tunneling socket could not be established, statusCode=%d", res.statusCode ); socket.destroy(); var error = new Error("tunneling socket could not be established, statusCode=" + res.statusCode); error.code = "ECONNRESET"; options.request.emit("error", error); self.removeSocket(placeholder); return; } if (head.length > 0) { debug2("got illegal response body from proxy"); socket.destroy(); var error = new Error("got illegal response body from proxy"); error.code = "ECONNRESET"; options.request.emit("error", error); self.removeSocket(placeholder); return; } debug2("tunneling connection has established"); self.sockets[self.sockets.indexOf(placeholder)] = socket; return cb(socket); } function onError(cause) { connectReq.removeAllListeners(); debug2( "tunneling socket could not be established, cause=%s\n", cause.message, cause.stack ); var error = new Error("tunneling socket could not be established, cause=" + cause.message); error.code = "ECONNRESET"; options.request.emit("error", error); self.removeSocket(placeholder); } }; TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { var pos = this.sockets.indexOf(socket); if (pos === -1) { return; } this.sockets.splice(pos, 1); var pending = this.requests.shift(); if (pending) { this.createSocket(pending, function(socket2) { pending.request.onSocket(socket2); }); } }; function createSecureSocket(options, cb) { var self = this; TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { var hostHeader = options.request.getHeader("host"); var tlsOptions = mergeOptions({}, self.options, { socket, servername: hostHeader ? hostHeader.replace(/:.*$/, "") : options.host }); var secureSocket = tls.connect(0, tlsOptions); self.sockets[self.sockets.indexOf(socket)] = secureSocket; cb(secureSocket); }); } function toOptions(host, port, localAddress) { if (typeof host === "string") { return { host, port, localAddress }; } return host; } function mergeOptions(target) { for (var i = 1, len = arguments.length; i < len; ++i) { var overrides = arguments[i]; if (typeof overrides === "object") { var keys = Object.keys(overrides); for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { var k = keys[j]; if (overrides[k] !== void 0) { target[k] = overrides[k]; } } } } return target; } var debug2; if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { debug2 = function() { var args = Array.prototype.slice.call(arguments); if (typeof args[0] === "string") { args[0] = "TUNNEL: " + args[0]; } else { args.unshift("TUNNEL:"); } console.error.apply(console, args); }; } else { debug2 = function() { }; } exports2.debug = debug2; } }); // node_modules/tunnel/index.js var require_tunnel2 = __commonJS({ "node_modules/tunnel/index.js"(exports2, module2) { module2.exports = require_tunnel(); } }); // node_modules/undici/lib/core/symbols.js var require_symbols = __commonJS({ "node_modules/undici/lib/core/symbols.js"(exports2, module2) { module2.exports = { kClose: /* @__PURE__ */ Symbol("close"), kDestroy: /* @__PURE__ */ Symbol("destroy"), kDispatch: /* @__PURE__ */ Symbol("dispatch"), kUrl: /* @__PURE__ */ Symbol("url"), kWriting: /* @__PURE__ */ Symbol("writing"), kResuming: /* @__PURE__ */ Symbol("resuming"), kQueue: /* @__PURE__ */ Symbol("queue"), kConnect: /* @__PURE__ */ Symbol("connect"), kConnecting: /* @__PURE__ */ Symbol("connecting"), kKeepAliveDefaultTimeout: /* @__PURE__ */ Symbol("default keep alive timeout"), kKeepAliveMaxTimeout: /* @__PURE__ */ Symbol("max keep alive timeout"), kKeepAliveTimeoutThreshold: /* @__PURE__ */ Symbol("keep alive timeout threshold"), kKeepAliveTimeoutValue: /* @__PURE__ */ Symbol("keep alive timeout"), kKeepAlive: /* @__PURE__ */ Symbol("keep alive"), kHeadersTimeout: /* @__PURE__ */ Symbol("headers timeout"), kBodyTimeout: /* @__PURE__ */ Symbol("body timeout"), kServerName: /* @__PURE__ */ Symbol("server name"), kLocalAddress: /* @__PURE__ */ Symbol("local address"), kHost: /* @__PURE__ */ Symbol("host"), kNoRef: /* @__PURE__ */ Symbol("no ref"), kBodyUsed: /* @__PURE__ */ Symbol("used"), kBody: /* @__PURE__ */ Symbol("abstracted request body"), kRunning: /* @__PURE__ */ Symbol("running"), kBlocking: /* @__PURE__ */ Symbol("blocking"), kPending: /* @__PURE__ */ Symbol("pending"), kSize: /* @__PURE__ */ Symbol("size"), kBusy: /* @__PURE__ */ Symbol("busy"), kQueued: /* @__PURE__ */ Symbol("queued"), kFree: /* @__PURE__ */ Symbol("free"), kConnected: /* @__PURE__ */ Symbol("connected"), kClosed: /* @__PURE__ */ Symbol("closed"), kNeedDrain: /* @__PURE__ */ Symbol("need drain"), kReset: /* @__PURE__ */ Symbol("reset"), kDestroyed: /* @__PURE__ */ Symbol.for("nodejs.stream.destroyed"), kResume: /* @__PURE__ */ Symbol("resume"), kOnError: /* @__PURE__ */ Symbol("on error"), kMaxHeadersSize: /* @__PURE__ */ Symbol("max headers size"), kRunningIdx: /* @__PURE__ */ Symbol("running index"), kPendingIdx: /* @__PURE__ */ Symbol("pending index"), kError: /* @__PURE__ */ Symbol("error"), kClients: /* @__PURE__ */ Symbol("clients"), kClient: /* @__PURE__ */ Symbol("client"), kParser: /* @__PURE__ */ Symbol("parser"), kOnDestroyed: /* @__PURE__ */ Symbol("destroy callbacks"), kPipelining: /* @__PURE__ */ Symbol("pipelining"), kSocket: /* @__PURE__ */ Symbol("socket"), kHostHeader: /* @__PURE__ */ Symbol("host header"), kConnector: /* @__PURE__ */ Symbol("connector"), kStrictContentLength: /* @__PURE__ */ Symbol("strict content length"), kMaxRedirections: /* @__PURE__ */ Symbol("maxRedirections"), kMaxRequests: /* @__PURE__ */ Symbol("maxRequestsPerClient"), kProxy: /* @__PURE__ */ Symbol("proxy agent options"), kCounter: /* @__PURE__ */ Symbol("socket request counter"), kInterceptors: /* @__PURE__ */ Symbol("dispatch interceptors"), kMaxResponseSize: /* @__PURE__ */ Symbol("max response size"), kHTTP2Session: /* @__PURE__ */ Symbol("http2Session"), kHTTP2SessionState: /* @__PURE__ */ Symbol("http2Session state"), kRetryHandlerDefaultRetry: /* @__PURE__ */ Symbol("retry agent default retry"), kConstruct: /* @__PURE__ */ Symbol("constructable"), kListeners: /* @__PURE__ */ Symbol("listeners"), kHTTPContext: /* @__PURE__ */ Symbol("http context"), kMaxConcurrentStreams: /* @__PURE__ */ Symbol("max concurrent streams"), kNoProxyAgent: /* @__PURE__ */ Symbol("no proxy agent"), kHttpProxyAgent: /* @__PURE__ */ Symbol("http proxy agent"), kHttpsProxyAgent: /* @__PURE__ */ Symbol("https proxy agent") }; } }); // node_modules/undici/lib/core/errors.js var require_errors = __commonJS({ "node_modules/undici/lib/core/errors.js"(exports2, module2) { "use strict"; var kUndiciError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR"); var UndiciError = class extends Error { constructor(message) { super(message); this.name = "UndiciError"; this.code = "UND_ERR"; } static [Symbol.hasInstance](instance) { return instance && instance[kUndiciError] === true; } [kUndiciError] = true; }; var kConnectTimeoutError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"); var ConnectTimeoutError = class extends UndiciError { constructor(message) { super(message); this.name = "ConnectTimeoutError"; this.message = message || "Connect Timeout Error"; this.code = "UND_ERR_CONNECT_TIMEOUT"; } static [Symbol.hasInstance](instance) { return instance && instance[kConnectTimeoutError] === true; } [kConnectTimeoutError] = true; }; var kHeadersTimeoutError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"); var HeadersTimeoutError = class extends UndiciError { constructor(message) { super(message); this.name = "HeadersTimeoutError"; this.message = message || "Headers Timeout Error"; this.code = "UND_ERR_HEADERS_TIMEOUT"; } static [Symbol.hasInstance](instance) { return instance && instance[kHeadersTimeoutError] === true; } [kHeadersTimeoutError] = true; }; var kHeadersOverflowError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"); var HeadersOverflowError = class extends UndiciError { constructor(message) { super(message); this.name = "HeadersOverflowError"; this.message = message || "Headers Overflow Error"; this.code = "UND_ERR_HEADERS_OVERFLOW"; } static [Symbol.hasInstance](instance) { return instance && instance[kHeadersOverflowError] === true; } [kHeadersOverflowError] = true; }; var kBodyTimeoutError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"); var BodyTimeoutError = class extends UndiciError { constructor(message) { super(message); this.name = "BodyTimeoutError"; this.message = message || "Body Timeout Error"; this.code = "UND_ERR_BODY_TIMEOUT"; } static [Symbol.hasInstance](instance) { return instance && instance[kBodyTimeoutError] === true; } [kBodyTimeoutError] = true; }; var kResponseStatusCodeError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_RESPONSE_STATUS_CODE"); var ResponseStatusCodeError = class extends UndiciError { constructor(message, statusCode, headers, body) { super(message); this.name = "ResponseStatusCodeError"; this.message = message || "Response Status Code Error"; this.code = "UND_ERR_RESPONSE_STATUS_CODE"; this.body = body; this.status = statusCode; this.statusCode = statusCode; this.headers = headers; } static [Symbol.hasInstance](instance) { return instance && instance[kResponseStatusCodeError] === true; } [kResponseStatusCodeError] = true; }; var kInvalidArgumentError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_INVALID_ARG"); var InvalidArgumentError = class extends UndiciError { constructor(message) { super(message); this.name = "InvalidArgumentError"; this.message = message || "Invalid Argument Error"; this.code = "UND_ERR_INVALID_ARG"; } static [Symbol.hasInstance](instance) { return instance && instance[kInvalidArgumentError] === true; } [kInvalidArgumentError] = true; }; var kInvalidReturnValueError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"); var InvalidReturnValueError = class extends UndiciError { constructor(message) { super(message); this.name = "InvalidReturnValueError"; this.message = message || "Invalid Return Value Error"; this.code = "UND_ERR_INVALID_RETURN_VALUE"; } static [Symbol.hasInstance](instance) { return instance && instance[kInvalidReturnValueError] === true; } [kInvalidReturnValueError] = true; }; var kAbortError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_ABORT"); var AbortError = class extends UndiciError { constructor(message) { super(message); this.name = "AbortError"; this.message = message || "The operation was aborted"; this.code = "UND_ERR_ABORT"; } static [Symbol.hasInstance](instance) { return instance && instance[kAbortError] === true; } [kAbortError] = true; }; var kRequestAbortedError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_ABORTED"); var RequestAbortedError = class extends AbortError { constructor(message) { super(message); this.name = "AbortError"; this.message = message || "Request aborted"; this.code = "UND_ERR_ABORTED"; } static [Symbol.hasInstance](instance) { return instance && instance[kRequestAbortedError] === true; } [kRequestAbortedError] = true; }; var kInformationalError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_INFO"); var InformationalError = class extends UndiciError { constructor(message) { super(message); this.name = "InformationalError"; this.message = message || "Request information"; this.code = "UND_ERR_INFO"; } static [Symbol.hasInstance](instance) { return instance && instance[kInformationalError] === true; } [kInformationalError] = true; }; var kRequestContentLengthMismatchError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"); var RequestContentLengthMismatchError = class extends UndiciError { constructor(message) { super(message); this.name = "RequestContentLengthMismatchError"; this.message = message || "Request body length does not match content-length header"; this.code = "UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"; } static [Symbol.hasInstance](instance) { return instance && instance[kRequestContentLengthMismatchError] === true; } [kRequestContentLengthMismatchError] = true; }; var kResponseContentLengthMismatchError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"); var ResponseContentLengthMismatchError = class extends UndiciError { constructor(message) { super(message); this.name = "ResponseContentLengthMismatchError"; this.message = message || "Response body length does not match content-length header"; this.code = "UND_ERR_RES_CONTENT_LENGTH_MISMATCH"; } static [Symbol.hasInstance](instance) { return instance && instance[kResponseContentLengthMismatchError] === true; } [kResponseContentLengthMismatchError] = true; }; var kClientDestroyedError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_DESTROYED"); var ClientDestroyedError = class extends UndiciError { constructor(message) { super(message); this.name = "ClientDestroyedError"; this.message = message || "The client is destroyed"; this.code = "UND_ERR_DESTROYED"; } static [Symbol.hasInstance](instance) { return instance && instance[kClientDestroyedError] === true; } [kClientDestroyedError] = true; }; var kClientClosedError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_CLOSED"); var ClientClosedError = class extends UndiciError { constructor(message) { super(message); this.name = "ClientClosedError"; this.message = message || "The client is closed"; this.code = "UND_ERR_CLOSED"; } static [Symbol.hasInstance](instance) { return instance && instance[kClientClosedError] === true; } [kClientClosedError] = true; }; var kSocketError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_SOCKET"); var SocketError = class extends UndiciError { constructor(message, socket) { super(message); this.name = "SocketError"; this.message = message || "Socket error"; this.code = "UND_ERR_SOCKET"; this.socket = socket; } static [Symbol.hasInstance](instance) { return instance && instance[kSocketError] === true; } [kSocketError] = true; }; var kNotSupportedError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"); var NotSupportedError = class extends UndiciError { constructor(message) { super(message); this.name = "NotSupportedError"; this.message = message || "Not supported error"; this.code = "UND_ERR_NOT_SUPPORTED"; } static [Symbol.hasInstance](instance) { return instance && instance[kNotSupportedError] === true; } [kNotSupportedError] = true; }; var kBalancedPoolMissingUpstreamError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"); var BalancedPoolMissingUpstreamError = class extends UndiciError { constructor(message) { super(message); this.name = "MissingUpstreamError"; this.message = message || "No upstream has been added to the BalancedPool"; this.code = "UND_ERR_BPL_MISSING_UPSTREAM"; } static [Symbol.hasInstance](instance) { return instance && instance[kBalancedPoolMissingUpstreamError] === true; } [kBalancedPoolMissingUpstreamError] = true; }; var kHTTPParserError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_HTTP_PARSER"); var HTTPParserError = class extends Error { constructor(message, code, data) { super(message); this.name = "HTTPParserError"; this.code = code ? `HPE_${code}` : void 0; this.data = data ? data.toString() : void 0; } static [Symbol.hasInstance](instance) { return instance && instance[kHTTPParserError] === true; } [kHTTPParserError] = true; }; var kResponseExceededMaxSizeError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"); var ResponseExceededMaxSizeError = class extends UndiciError { constructor(message) { super(message); this.name = "ResponseExceededMaxSizeError"; this.message = message || "Response content exceeded max size"; this.code = "UND_ERR_RES_EXCEEDED_MAX_SIZE"; } static [Symbol.hasInstance](instance) { return instance && instance[kResponseExceededMaxSizeError] === true; } [kResponseExceededMaxSizeError] = true; }; var kRequestRetryError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_REQ_RETRY"); var RequestRetryError = class extends UndiciError { constructor(message, code, { headers, data }) { super(message); this.name = "RequestRetryError"; this.message = message || "Request retry error"; this.code = "UND_ERR_REQ_RETRY"; this.statusCode = code; this.data = data; this.headers = headers; } static [Symbol.hasInstance](instance) { return instance && instance[kRequestRetryError] === true; } [kRequestRetryError] = true; }; var kResponseError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_RESPONSE"); var ResponseError = class extends UndiciError { constructor(message, code, { headers, data }) { super(message); this.name = "ResponseError"; this.message = message || "Response error"; this.code = "UND_ERR_RESPONSE"; this.statusCode = code; this.data = data; this.headers = headers; } static [Symbol.hasInstance](instance) { return instance && instance[kResponseError] === true; } [kResponseError] = true; }; var kSecureProxyConnectionError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_PRX_TLS"); var SecureProxyConnectionError = class extends UndiciError { constructor(cause, message, options) { super(message, { cause, ...options ?? {} }); this.name = "SecureProxyConnectionError"; this.message = message || "Secure Proxy Connection failed"; this.code = "UND_ERR_PRX_TLS"; this.cause = cause; } static [Symbol.hasInstance](instance) { return instance && instance[kSecureProxyConnectionError] === true; } [kSecureProxyConnectionError] = true; }; var kMessageSizeExceededError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"); var MessageSizeExceededError = class extends UndiciError { constructor(message) { super(message); this.name = "MessageSizeExceededError"; this.message = message || "Max decompressed message size exceeded"; this.code = "UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"; } static [Symbol.hasInstance](instance) { return instance && instance[kMessageSizeExceededError] === true; } get [kMessageSizeExceededError]() { return true; } }; module2.exports = { AbortError, HTTPParserError, UndiciError, HeadersTimeoutError, HeadersOverflowError, BodyTimeoutError, RequestContentLengthMismatchError, ConnectTimeoutError, ResponseStatusCodeError, InvalidArgumentError, InvalidReturnValueError, RequestAbortedError, ClientDestroyedError, ClientClosedError, InformationalError, SocketError, NotSupportedError, ResponseContentLengthMismatchError, BalancedPoolMissingUpstreamError, ResponseExceededMaxSizeError, RequestRetryError, ResponseError, SecureProxyConnectionError, MessageSizeExceededError }; } }); // node_modules/undici/lib/core/constants.js var require_constants = __commonJS({ "node_modules/undici/lib/core/constants.js"(exports2, module2) { "use strict"; var headerNameLowerCasedRecord = {}; var wellknownHeaderNames = [ "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 i = 0; i < wellknownHeaderNames.length; ++i) { const key = wellknownHeaderNames[i]; const lowerCasedKey = key.toLowerCase(); headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = lowerCasedKey; } Object.setPrototypeOf(headerNameLowerCasedRecord, null); module2.exports = { wellknownHeaderNames, headerNameLowerCasedRecord }; } }); // node_modules/undici/lib/core/tree.js var require_tree = __commonJS({ "node_modules/undici/lib/core/tree.js"(exports2, module2) { "use strict"; var { wellknownHeaderNames, headerNameLowerCasedRecord } = require_constants(); var TstNode = class _TstNode { /** @type {any} */ value = null; /** @type {null | TstNode} */ left = null; /** @type {null | TstNode} */ middle = null; /** @type {null | TstNode} */ right = null; /** @type {number} */ code; /** * @param {string} key * @param {any} value * @param {number} index */ constructor(key, value, index) { if (index === void 0 || index >= key.length) { throw new TypeError("Unreachable"); } const code = this.code = key.charCodeAt(index); if (code > 127) { throw new TypeError("key must be ascii string"); } if (key.length !== ++index) { this.middle = new _TstNode(key, value, index); } else { this.value = value; } } /** * @param {string} key * @param {any} value */ add(key, value) { const length = key.length; if (length === 0) { throw new TypeError("Unreachable"); } let index = 0; let node = this; while (true) { const code = key.charCodeAt(index); if (code > 127) { throw new TypeError("key must be ascii string"); } if (node.code === code) { if (length === ++index) { node.value = value; break; } else if (node.middle !== null) { node = node.middle; } else { node.middle = new _TstNode(key, value, index); break; } } else if (node.code < code) { if (node.left !== null) { node = node.left; } else { node.left = new _TstNode(key, value, index); break; } } else if (node.right !== null) { node = node.right; } else { node.right = new _TstNode(key, value, index); break; } } } /** * @param {Uint8Array} key * @return {TstNode | null} */ search(key) { const keylength = key.length; let index = 0; let node = this; while (node !== null && index < keylength) { let code = key[index]; if (code <= 90 && code >= 65) { code |= 32; } while (node !== null) { if (code === node.code) { if (keylength === ++index) { return node; } node = node.middle; break; } node = node.code < code ? node.left : node.right; } } return null; } }; var TernarySearchTree = class { /** @type {TstNode | null} */ node = null; /** * @param {string} key * @param {any} value * */ insert(key, value) { if (this.node === null) { this.node = new TstNode(key, value, 0); } else { this.node.add(key, value); } } /** * @param {Uint8Array} key * @return {any} */ lookup(key) { return this.node?.search(key)?.value ?? null; } }; var tree = new TernarySearchTree(); for (let i = 0; i < wellknownHeaderNames.length; ++i) { const key = headerNameLowerCasedRecord[wellknownHeaderNames[i]]; tree.insert(key, key); } module2.exports = { TernarySearchTree, tree }; } }); // node_modules/undici/lib/core/util.js var require_util = __commonJS({ "node_modules/undici/lib/core/util.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols(); var { IncomingMessage } = require("node:http"); var stream2 = require("node:stream"); var net = require("node:net"); var { Blob: Blob2 } = require("node:buffer"); var nodeUtil = require("node:util"); var { stringify } = require("node:querystring"); var { EventEmitter: EE } = require("node:events"); var { InvalidArgumentError } = require_errors(); var { headerNameLowerCasedRecord } = require_constants(); var { tree } = require_tree(); var [nodeMajor, nodeMinor] = process.versions.node.split(".").map((v) => Number(v)); var BodyAsyncIterable = class { constructor(body) { this[kBody] = body; this[kBodyUsed] = false; } async *[Symbol.asyncIterator]() { assert(!this[kBodyUsed], "disturbed"); this[kBodyUsed] = true; yield* this[kBody]; } }; function wrapRequestBody(body) { if (isStream(body)) { if (bodyLength(body) === 0) { body.on("data", function() { assert(false); }); } if (typeof body.readableDidRead !== "boolean") { body[kBodyUsed] = false; EE.prototype.on.call(body, "data", function() { this[kBodyUsed] = true; }); } return body; } else if (body && typeof body.pipeTo === "function") { return new BodyAsyncIterable(body); } else if (body && typeof body !== "string" && !ArrayBuffer.isView(body) && isIterable(body)) { return new BodyAsyncIterable(body); } else { return body; } } function nop() { } function isStream(obj) { return obj && typeof obj === "object" && typeof obj.pipe === "function" && typeof obj.on === "function"; } function isBlobLike(object) { if (object === null) { return false; } else if (object instanceof Blob2) { return true; } else if (typeof object !== "object") { return false; } else { const sTag = object[Symbol.toStringTag]; return (sTag === "Blob" || sTag === "File") && ("stream" in object && typeof object.stream === "function" || "arrayBuffer" in object && typeof object.arrayBuffer === "function"); } } function buildURL(url, queryParams) { if (url.includes("?") || url.includes("#")) { throw new Error('Query params cannot be passed when url already contains "?" or "#".'); } const stringified = stringify(queryParams); if (stringified) { url += "?" + stringified; } return url; } function isValidPort(port) { const value = parseInt(port, 10); return value === Number(port) && value >= 0 && value <= 65535; } function isHttpOrHttpsPrefixed(value) { return value != null && value[0] === "h" && value[1] === "t" && value[2] === "t" && value[3] === "p" && (value[4] === ":" || value[4] === "s" && value[5] === ":"); } function parseURL(url) { if (typeof url === "string") { url = new URL(url); if (!isHttpOrHttpsPrefixed(url.origin || url.protocol)) { throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); } return url; } if (!url || typeof url !== "object") { throw new InvalidArgumentError("Invalid URL: The URL argument must be a non-null object."); } if (!(url instanceof URL)) { if (url.port != null && url.port !== "" && isValidPort(url.port) === false) { throw new InvalidArgumentError("Invalid URL: port must be a valid integer or a string representation of an integer."); } if (url.path != null && typeof url.path !== "string") { throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/undefined."); } if (url.pathname != null && typeof url.pathname !== "string") { throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined."); } if (url.hostname != null && typeof url.hostname !== "string") { throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined."); } if (url.origin != null && typeof url.origin !== "string") { throw new InvalidArgumentError("Invalid URL origin: the origin must be a string or null/undefined."); } if (!isHttpOrHttpsPrefixed(url.origin || url.protocol)) { throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); } const port = url.port != null ? url.port : url.protocol === "https:" ? 443 : 80; let origin = url.origin != null ? url.origin : `${url.protocol || ""}//${url.hostname || ""}:${port}`; let path2 = url.path != null ? url.path : `${url.pathname || ""}${url.search || ""}`; if (origin[origin.length - 1] === "/") { origin = origin.slice(0, origin.length - 1); } if (path2 && path2[0] !== "/") { path2 = `/${path2}`; } return new URL(`${origin}${path2}`); } if (!isHttpOrHttpsPrefixed(url.origin || url.protocol)) { throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); } return url; } function parseOrigin(url) { url = parseURL(url); if (url.pathname !== "/" || url.search || url.hash) { throw new InvalidArgumentError("invalid url"); } return url; } function getHostname(host) { if (host[0] === "[") { const idx2 = host.indexOf("]"); assert(idx2 !== -1); return host.substring(1, idx2); } const idx = host.indexOf(":"); if (idx === -1) return host; return host.substring(0, idx); } function getServerName(host) { if (!host) { return null; } assert(typeof host === "string"); const servername = getHostname(host); if (net.isIP(servername)) { return ""; } return servername; } function deepClone(obj) { return JSON.parse(JSON.stringify(obj)); } function isAsyncIterable(obj) { return !!(obj != null && typeof obj[Symbol.asyncIterator] === "function"); } function isIterable(obj) { return !!(obj != null && (typeof obj[Symbol.iterator] === "function" || typeof obj[Symbol.asyncIterator] === "function")); } function bodyLength(body) { if (body == null) { return 0; } else if (isStream(body)) { const state = body._readableState; return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length) ? state.length : null; } else if (isBlobLike(body)) { return body.size != null ? body.size : null; } else if (isBuffer(body)) { return body.byteLength; } return null; } function isDestroyed(body) { return body && !!(body.destroyed || body[kDestroyed] || stream2.isDestroyed?.(body)); } function destroy(stream3, err) { if (stream3 == null || !isStream(stream3) || isDestroyed(stream3)) { return; } if (typeof stream3.destroy === "function") { if (Object.getPrototypeOf(stream3).constructor === IncomingMessage) { stream3.socket = null; } stream3.destroy(err); } else if (err) { queueMicrotask(() => { stream3.emit("error", err); }); } if (stream3.destroyed !== true) { stream3[kDestroyed] = true; } } var KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/; function parseKeepAliveTimeout(val) { const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR); return m ? parseInt(m[1], 10) * 1e3 : null; } function headerNameToString(value) { return typeof value === "string" ? headerNameLowerCasedRecord[value] ?? value.toLowerCase() : tree.lookup(value) ?? value.toString("latin1").toLowerCase(); } function bufferToLowerCasedHeaderName(value) { return tree.lookup(value) ?? value.toString("latin1").toLowerCase(); } function parseHeaders(headers, obj) { if (obj === void 0) obj = {}; for (let i = 0; i < headers.length; i += 2) { const key = headerNameToString(headers[i]); let val = obj[key]; if (val) { if (typeof val === "string") { val = [val]; obj[key] = val; } val.push(headers[i + 1].toString("utf8")); } else { const headersValue = headers[i + 1]; if (typeof headersValue === "string") { obj[key] = headersValue; } else { obj[key] = Array.isArray(headersValue) ? headersValue.map((x) => x.toString("utf8")) : headersValue.toString("utf8"); } } } if ("content-length" in obj && "content-disposition" in obj) { obj["content-disposition"] = Buffer.from(obj["content-disposition"]).toString("latin1"); } return obj; } function parseRawHeaders(headers) { const len = headers.length; const ret = new Array(len); let hasContentLength = false; let contentDispositionIdx = -1; let key; let val; let kLen = 0; for (let n = 0; n < headers.length; n += 2) { key = headers[n]; val = headers[n + 1]; typeof key !== "string" && (key = key.toString()); typeof val !== "string" && (val = val.toString("utf8")); kLen = key.length; if (kLen === 14 && key[7] === "-" && (key === "content-length" || key.toLowerCase() === "content-length")) { hasContentLength = true; } else if (kLen === 19 && key[7] === "-" && (key === "content-disposition" || key.toLowerCase() === "content-disposition")) { contentDispositionIdx = n + 1; } ret[n] = key; ret[n + 1] = val; } if (hasContentLength && contentDispositionIdx !== -1) { ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString("latin1"); } return ret; } function isBuffer(buffer) { return buffer instanceof Uint8Array || Buffer.isBuffer(buffer); } function validateHandler(handler2, method, upgrade) { if (!handler2 || typeof handler2 !== "object") { throw new InvalidArgumentError("handler must be an object"); } if (typeof handler2.onConnect !== "function") { throw new InvalidArgumentError("invalid onConnect method"); } if (typeof handler2.onError !== "function") { throw new InvalidArgumentError("invalid onError method"); } if (typeof handler2.onBodySent !== "function" && handler2.onBodySent !== void 0) { throw new InvalidArgumentError("invalid onBodySent method"); } if (upgrade || method === "CONNECT") { if (typeof handler2.onUpgrade !== "function") { throw new InvalidArgumentError("invalid onUpgrade method"); } } else { if (typeof handler2.onHeaders !== "function") { throw new InvalidArgumentError("invalid onHeaders method"); } if (typeof handler2.onData !== "function") { throw new InvalidArgumentError("invalid onData method"); } if (typeof handler2.onComplete !== "function") { throw new InvalidArgumentError("invalid onComplete method"); } } } function isDisturbed(body) { return !!(body && (stream2.isDisturbed(body) || body[kBodyUsed])); } function isErrored(body) { return !!(body && stream2.isErrored(body)); } function isReadable(body) { return !!(body && stream2.isReadable(body)); } function getSocketInfo(socket) { return { localAddress: socket.localAddress, localPort: socket.localPort, remoteAddress: socket.remoteAddress, remotePort: socket.remotePort, remoteFamily: socket.remoteFamily, timeout: socket.timeout, bytesWritten: socket.bytesWritten, bytesRead: socket.bytesRead }; } function ReadableStreamFrom(iterable) { let iterator2; return new ReadableStream( { async start() { iterator2 = iterable[Symbol.asyncIterator](); }, async pull(controller) { const { done, value } = await iterator2.next(); if (done) { queueMicrotask(() => { controller.close(); controller.byobRequest?.respond(0); }); } else { const buf = Buffer.isBuffer(value) ? value : Buffer.from(value); if (buf.byteLength) { controller.enqueue(new Uint8Array(buf)); } } return controller.desiredSize > 0; }, async cancel(reason) { await iterator2.return(); }, type: "bytes" } ); } function isFormDataLike(object) { return object && typeof object === "object" && typeof object.append === "function" && typeof object.delete === "function" && typeof object.get === "function" && typeof object.getAll === "function" && typeof object.has === "function" && typeof object.set === "function" && object[Symbol.toStringTag] === "FormData"; } function addAbortListener(signal, listener) { if ("addEventListener" in signal) { signal.addEventListener("abort", listener, { once: true }); return () => signal.removeEventListener("abort", listener); } signal.addListener("abort", listener); return () => signal.removeListener("abort", listener); } var hasToWellFormed = typeof String.prototype.toWellFormed === "function"; var hasIsWellFormed = typeof String.prototype.isWellFormed === "function"; function toUSVString(val) { return hasToWellFormed ? `${val}`.toWellFormed() : nodeUtil.toUSVString(val); } function isUSVString(val) { return hasIsWellFormed ? `${val}`.isWellFormed() : toUSVString(val) === `${val}`; } function isTokenCharCode(c) { switch (c) { 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 false; default: return c >= 33 && c <= 126; } } function isValidHTTPToken(characters) { if (characters.length === 0) { return false; } for (let i = 0; i < characters.length; ++i) { if (!isTokenCharCode(characters.charCodeAt(i))) { return false; } } return true; } var headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; function isValidHeaderValue(characters) { return !headerCharRegex.test(characters); } function parseRangeHeader(range) { if (range == null || range === "") return { start: 0, end: null, size: null }; const m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null; return m ? { start: parseInt(m[1]), end: m[2] ? parseInt(m[2]) : null, size: m[3] ? parseInt(m[3]) : null } : null; } function addListener(obj, name, listener) { const listeners = obj[kListeners] ??= []; listeners.push([name, listener]); obj.on(name, listener); return obj; } function removeAllListeners(obj) { for (const [name, listener] of obj[kListeners] ?? []) { obj.removeListener(name, listener); } obj[kListeners] = null; } function errorRequest(client, request2, err) { try { request2.onError(err); assert(request2.aborted); } catch (err2) { client.emit("error", err2); } } var kEnumerableProperty = /* @__PURE__ */ Object.create(null); kEnumerableProperty.enumerable = true; var normalizedMethodRecordsBase = { delete: "DELETE", DELETE: "DELETE", get: "GET", GET: "GET", head: "HEAD", HEAD: "HEAD", options: "OPTIONS", OPTIONS: "OPTIONS", post: "POST", POST: "POST", put: "PUT", PUT: "PUT" }; var normalizedMethodRecords = { ...normalizedMethodRecordsBase, patch: "patch", PATCH: "PATCH" }; Object.setPrototypeOf(normalizedMethodRecordsBase, null); Object.setPrototypeOf(normalizedMethodRecords, null); module2.exports = { kEnumerableProperty, nop, isDisturbed, isErrored, isReadable, toUSVString, isUSVString, isBlobLike, parseOrigin, parseURL, getServerName, isStream, isIterable, isAsyncIterable, isDestroyed, headerNameToString, bufferToLowerCasedHeaderName, addListener, removeAllListeners, errorRequest, parseRawHeaders, parseHeaders, parseKeepAliveTimeout, destroy, bodyLength, deepClone, ReadableStreamFrom, isBuffer, validateHandler, getSocketInfo, isFormDataLike, buildURL, addAbortListener, isValidHTTPToken, isValidHeaderValue, isTokenCharCode, parseRangeHeader, normalizedMethodRecordsBase, normalizedMethodRecords, isValidPort, isHttpOrHttpsPrefixed, nodeMajor, nodeMinor, safeHTTPMethods: ["GET", "HEAD", "OPTIONS", "TRACE"], wrapRequestBody }; } }); // node_modules/undici/lib/core/diagnostics.js var require_diagnostics = __commonJS({ "node_modules/undici/lib/core/diagnostics.js"(exports2, module2) { "use strict"; var diagnosticsChannel = require("node:diagnostics_channel"); var util2 = require("node:util"); var undiciDebugLog = util2.debuglog("undici"); var fetchDebuglog = util2.debuglog("fetch"); var websocketDebuglog = util2.debuglog("websocket"); var isClientSet = false; var channels = { // Client beforeConnect: diagnosticsChannel.channel("undici:client:beforeConnect"), connected: diagnosticsChannel.channel("undici:client:connected"), connectError: diagnosticsChannel.channel("undici:client:connectError"), sendHeaders: diagnosticsChannel.channel("undici:client:sendHeaders"), // Request create: diagnosticsChannel.channel("undici:request:create"), bodySent: diagnosticsChannel.channel("undici:request:bodySent"), headers: diagnosticsChannel.channel("undici:request:headers"), trailers: diagnosticsChannel.channel("undici:request:trailers"), error: diagnosticsChannel.channel("undici:request:error"), // WebSocket open: diagnosticsChannel.channel("undici:websocket:open"), close: diagnosticsChannel.channel("undici:websocket:close"), socketError: diagnosticsChannel.channel("undici:websocket:socket_error"), ping: diagnosticsChannel.channel("undici:websocket:ping"), pong: diagnosticsChannel.channel("undici:websocket:pong") }; if (undiciDebugLog.enabled || fetchDebuglog.enabled) { const debuglog = fetchDebuglog.enabled ? fetchDebuglog : undiciDebugLog; diagnosticsChannel.channel("undici:client:beforeConnect").subscribe((evt) => { const { connectParams: { version, protocol, port, host } } = evt; debuglog( "connecting to %s using %s%s", `${host}${port ? `:${port}` : ""}`, protocol, version ); }); diagnosticsChannel.channel("undici:client:connected").subscribe((evt) => { const { connectParams: { version, protocol, port, host } } = evt; debuglog( "connected to %s using %s%s", `${host}${port ? `:${port}` : ""}`, protocol, version ); }); diagnosticsChannel.channel("undici:client:connectError").subscribe((evt) => { const { connectParams: { version, protocol, port, host }, error } = evt; debuglog( "connection to %s using %s%s errored - %s", `${host}${port ? `:${port}` : ""}`, protocol, version, error.message ); }); diagnosticsChannel.channel("undici:client:sendHeaders").subscribe((evt) => { const { request: { method, path: path2, origin } } = evt; debuglog("sending request to %s %s/%s", method, origin, path2); }); diagnosticsChannel.channel("undici:request:headers").subscribe((evt) => { const { request: { method, path: path2, origin }, response: { statusCode } } = evt; debuglog( "received response to %s %s/%s - HTTP %d", method, origin, path2, statusCode ); }); diagnosticsChannel.channel("undici:request:trailers").subscribe((evt) => { const { request: { method, path: path2, origin } } = evt; debuglog("trailers received from %s %s/%s", method, origin, path2); }); diagnosticsChannel.channel("undici:request:error").subscribe((evt) => { const { request: { method, path: path2, origin }, error } = evt; debuglog( "request to %s %s/%s errored - %s", method, origin, path2, error.message ); }); isClientSet = true; } if (websocketDebuglog.enabled) { if (!isClientSet) { const debuglog = undiciDebugLog.enabled ? undiciDebugLog : websocketDebuglog; diagnosticsChannel.channel("undici:client:beforeConnect").subscribe((evt) => { const { connectParams: { version, protocol, port, host } } = evt; debuglog( "connecting to %s%s using %s%s", host, port ? `:${port}` : "", protocol, version ); }); diagnosticsChannel.channel("undici:client:connected").subscribe((evt) => { const { connectParams: { version, protocol, port, host } } = evt; debuglog( "connected to %s%s using %s%s", host, port ? `:${port}` : "", protocol, version ); }); diagnosticsChannel.channel("undici:client:connectError").subscribe((evt) => { const { connectParams: { version, protocol, port, host }, error } = evt; debuglog( "connection to %s%s using %s%s errored - %s", host, port ? `:${port}` : "", protocol, version, error.message ); }); diagnosticsChannel.channel("undici:client:sendHeaders").subscribe((evt) => { const { request: { method, path: path2, origin } } = evt; debuglog("sending request to %s %s/%s", method, origin, path2); }); } diagnosticsChannel.channel("undici:websocket:open").subscribe((evt) => { const { address: { address, port } } = evt; websocketDebuglog("connection opened %s%s", address, port ? `:${port}` : ""); }); diagnosticsChannel.channel("undici:websocket:close").subscribe((evt) => { const { websocket, code, reason } = evt; websocketDebuglog( "closed connection to %s - %s %s", websocket.url, code, reason ); }); diagnosticsChannel.channel("undici:websocket:socket_error").subscribe((err) => { websocketDebuglog("connection errored - %s", err.message); }); diagnosticsChannel.channel("undici:websocket:ping").subscribe((evt) => { websocketDebuglog("ping received"); }); diagnosticsChannel.channel("undici:websocket:pong").subscribe((evt) => { websocketDebuglog("pong received"); }); } module2.exports = { channels }; } }); // node_modules/undici/lib/core/request.js var require_request = __commonJS({ "node_modules/undici/lib/core/request.js"(exports2, module2) { "use strict"; var { InvalidArgumentError, NotSupportedError } = require_errors(); var assert = require("node:assert"); var { isValidHTTPToken, isValidHeaderValue, isStream, destroy, isBuffer, isFormDataLike, isIterable, isBlobLike, buildURL, validateHandler, getServerName, normalizedMethodRecords } = require_util(); var { channels } = require_diagnostics(); var { headerNameLowerCasedRecord } = require_constants(); var invalidPathRegex = /[^\u0021-\u00ff]/; var kHandler = /* @__PURE__ */ Symbol("handler"); var Request = class { constructor(origin, { path: path2, method, body, headers, query, idempotent, blocking, upgrade, headersTimeout, bodyTimeout, reset, throwOnError, expectContinue, servername }, handler2) { if (typeof path2 !== "string") { throw new InvalidArgumentError("path must be a string"); } else if (path2[0] !== "/" && !(path2.startsWith("http://") || path2.startsWith("https://")) && method !== "CONNECT") { throw new InvalidArgumentError("path must be an absolute URL or start with a slash"); } else if (invalidPathRegex.test(path2)) { throw new InvalidArgumentError("invalid request path"); } if (typeof method !== "string") { throw new InvalidArgumentError("method must be a string"); } else if (normalizedMethodRecords[method] === void 0 && !isValidHTTPToken(method)) { throw new InvalidArgumentError("invalid request method"); } if (upgrade && typeof upgrade !== "string") { throw new InvalidArgumentError("upgrade must be a string"); } if (upgrade && !isValidHeaderValue(upgrade)) { throw new InvalidArgumentError("invalid upgrade header"); } if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) { throw new InvalidArgumentError("invalid headersTimeout"); } if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) { throw new InvalidArgumentError("invalid bodyTimeout"); } if (reset != null && typeof reset !== "boolean") { throw new InvalidArgumentError("invalid reset"); } if (expectContinue != null && typeof expectContinue !== "boolean") { throw new InvalidArgumentError("invalid expectContinue"); } this.headersTimeout = headersTimeout; this.bodyTimeout = bodyTimeout; this.throwOnError = throwOnError === true; this.method = method; this.abort = null; if (body == null) { this.body = null; } else if (isStream(body)) { this.body = body; const rState = this.body._readableState; if (!rState || !rState.autoDestroy) { this.endHandler = function autoDestroy() { destroy(this); }; this.body.on("end", this.endHandler); } this.errorHandler = (err) => { if (this.abort) { this.abort(err); } else { this.error = err; } }; this.body.on("error", this.errorHandler); } else if (isBuffer(body)) { this.body = body.byteLength ? body : null; } else if (ArrayBuffer.isView(body)) { this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null; } else if (body instanceof ArrayBuffer) { this.body = body.byteLength ? Buffer.from(body) : null; } else if (typeof body === "string") { this.body = body.length ? Buffer.from(body) : null; } else if (isFormDataLike(body) || isIterable(body) || isBlobLike(body)) { this.body = body; } else { throw new InvalidArgumentError("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable"); } this.completed = false; this.aborted = false; this.upgrade = upgrade || null; this.path = query ? buildURL(path2, query) : path2; this.origin = origin; this.idempotent = idempotent == null ? method === "HEAD" || method === "GET" : idempotent; this.blocking = blocking == null ? false : blocking; this.reset = reset == null ? null : reset; this.host = null; this.contentLength = null; this.contentType = null; this.headers = []; this.expectContinue = expectContinue != null ? expectContinue : false; if (Array.isArray(headers)) { if (headers.length % 2 !== 0) { throw new InvalidArgumentError("headers array must be even"); } for (let i = 0; i < headers.length; i += 2) { processHeader(this, headers[i], headers[i + 1]); } } else if (headers && typeof headers === "object") { if (headers[Symbol.iterator]) { for (const header of headers) { if (!Array.isArray(header) || header.length !== 2) { throw new InvalidArgumentError("headers must be in key-value pair format"); } processHeader(this, header[0], header[1]); } } else { const keys = Object.keys(headers); for (let i = 0; i < keys.length; ++i) { processHeader(this, keys[i], headers[keys[i]]); } } } else if (headers != null) { throw new InvalidArgumentError("headers must be an object or an array"); } validateHandler(handler2, method, upgrade); this.servername = servername || getServerName(this.host); this[kHandler] = handler2; if (channels.create.hasSubscribers) { channels.create.publish({ request: this }); } } onBodySent(chunk) { if (this[kHandler].onBodySent) { try { return this[kHandler].onBodySent(chunk); } catch (err) { this.abort(err); } } } onRequestSent() { if (channels.bodySent.hasSubscribers) { channels.bodySent.publish({ request: this }); } if (this[kHandler].onRequestSent) { try { return this[kHandler].onRequestSent(); } catch (err) { this.abort(err); } } } onConnect(abort) { assert(!this.aborted); assert(!this.completed); if (this.error) { abort(this.error); } else { this.abort = abort; return this[kHandler].onConnect(abort); } } onResponseStarted() { return this[kHandler].onResponseStarted?.(); } onHeaders(statusCode, headers, resume, statusText) { assert(!this.aborted); assert(!this.completed); if (channels.headers.hasSubscribers) { channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }); } try { return this[kHandler].onHeaders(statusCode, headers, resume, statusText); } catch (err) { this.abort(err); } } onData(chunk) { assert(!this.aborted); assert(!this.completed); try { return this[kHandler].onData(chunk); } catch (err) { this.abort(err); return false; } } onUpgrade(statusCode, headers, socket) { assert(!this.aborted); assert(!this.completed); return this[kHandler].onUpgrade(statusCode, headers, socket); } onComplete(trailers) { this.onFinally(); assert(!this.aborted); this.completed = true; if (channels.trailers.hasSubscribers) { channels.trailers.publish({ request: this, trailers }); } try { return this[kHandler].onComplete(trailers); } catch (err) { this.onError(err); } } onError(error) { this.onFinally(); if (channels.error.hasSubscribers) { channels.error.publish({ request: this, error }); } if (this.aborted) { return; } this.aborted = true; return this[kHandler].onError(error); } onFinally() { if (this.errorHandler) { this.body.off("error", this.errorHandler); this.errorHandler = null; } if (this.endHandler) { this.body.off("end", this.endHandler); this.endHandler = null; } } addHeader(key, value) { processHeader(this, key, value); return this; } }; function processHeader(request2, key, val) { if (val && (typeof val === "object" && !Array.isArray(val))) { throw new InvalidArgumentError(`invalid ${key} header`); } else if (val === void 0) { return; } let headerName = headerNameLowerCasedRecord[key]; if (headerName === void 0) { headerName = key.toLowerCase(); if (headerNameLowerCasedRecord[headerName] === void 0 && !isValidHTTPToken(headerName)) { throw new InvalidArgumentError("invalid header key"); } } if (Array.isArray(val)) { const arr = []; for (let i = 0; i < val.length; i++) { if (typeof val[i] === "string") { if (!isValidHeaderValue(val[i])) { throw new InvalidArgumentError(`invalid ${key} header`); } arr.push(val[i]); } else if (val[i] === null) { arr.push(""); } else if (typeof val[i] === "object") { throw new InvalidArgumentError(`invalid ${key} header`); } else { arr.push(`${val[i]}`); } } val = arr; } else if (typeof val === "string") { if (!isValidHeaderValue(val)) { throw new InvalidArgumentError(`invalid ${key} header`); } } else if (val === null) { val = ""; } else { val = `${val}`; } if (headerName === "host") { if (request2.host !== null) { throw new InvalidArgumentError("duplicate host header"); } if (typeof val !== "string") { throw new InvalidArgumentError("invalid host header"); } request2.host = val; } else if (headerName === "content-length") { if (request2.contentLength !== null) { throw new InvalidArgumentError("duplicate content-length header"); } request2.contentLength = parseInt(val, 10); if (!Number.isFinite(request2.contentLength)) { throw new InvalidArgumentError("invalid content-length header"); } } else if (request2.contentType === null && headerName === "content-type") { request2.contentType = val; request2.headers.push(key, val); } else if (headerName === "transfer-encoding" || headerName === "keep-alive" || headerName === "upgrade") { throw new InvalidArgumentError(`invalid ${headerName} header`); } else if (headerName === "connection") { const value = typeof val === "string" ? val.toLowerCase() : null; if (value !== "close" && value !== "keep-alive") { throw new InvalidArgumentError("invalid connection header"); } if (value === "close") { request2.reset = true; } } else if (headerName === "expect") { throw new NotSupportedError("expect header not supported"); } else { request2.headers.push(key, val); } } module2.exports = Request; } }); // node_modules/undici/lib/dispatcher/dispatcher.js var require_dispatcher = __commonJS({ "node_modules/undici/lib/dispatcher/dispatcher.js"(exports2, module2) { "use strict"; var EventEmitter = require("node:events"); var Dispatcher = class extends EventEmitter { dispatch() { throw new Error("not implemented"); } close() { throw new Error("not implemented"); } destroy() { throw new Error("not implemented"); } compose(...args) { const interceptors = Array.isArray(args[0]) ? args[0] : args; let dispatch = this.dispatch.bind(this); for (const interceptor of interceptors) { if (interceptor == null) { continue; } if (typeof interceptor !== "function") { throw new TypeError(`invalid interceptor, expected function received ${typeof interceptor}`); } dispatch = interceptor(dispatch); if (dispatch == null || typeof dispatch !== "function" || dispatch.length !== 2) { throw new TypeError("invalid interceptor"); } } return new ComposedDispatcher(this, dispatch); } }; var ComposedDispatcher = class extends Dispatcher { #dispatcher = null; #dispatch = null; constructor(dispatcher, dispatch) { super(); this.#dispatcher = dispatcher; this.#dispatch = dispatch; } dispatch(...args) { this.#dispatch(...args); } close(...args) { return this.#dispatcher.close(...args); } destroy(...args) { return this.#dispatcher.destroy(...args); } }; module2.exports = Dispatcher; } }); // node_modules/undici/lib/dispatcher/dispatcher-base.js var require_dispatcher_base = __commonJS({ "node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports2, module2) { "use strict"; var Dispatcher = require_dispatcher(); var { ClientDestroyedError, ClientClosedError, InvalidArgumentError } = require_errors(); var { kDestroy, kClose, kClosed, kDestroyed, kDispatch, kInterceptors } = require_symbols(); var kOnDestroyed = /* @__PURE__ */ Symbol("onDestroyed"); var kOnClosed = /* @__PURE__ */ Symbol("onClosed"); var kInterceptedDispatch = /* @__PURE__ */ Symbol("Intercepted Dispatch"); var DispatcherBase = class extends Dispatcher { constructor() { super(); this[kDestroyed] = false; this[kOnDestroyed] = null; this[kClosed] = false; this[kOnClosed] = []; } get destroyed() { return this[kDestroyed]; } get closed() { return this[kClosed]; } get interceptors() { return this[kInterceptors]; } set interceptors(newInterceptors) { if (newInterceptors) { for (let i = newInterceptors.length - 1; i >= 0; i--) { const interceptor = this[kInterceptors][i]; if (typeof interceptor !== "function") { throw new InvalidArgumentError("interceptor must be an function"); } } } this[kInterceptors] = newInterceptors; } close(callback) { if (callback === void 0) { return new Promise((resolve, reject) => { this.close((err, data) => { return err ? reject(err) : resolve(data); }); }); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (this[kDestroyed]) { queueMicrotask(() => callback(new ClientDestroyedError(), null)); return; } if (this[kClosed]) { if (this[kOnClosed]) { this[kOnClosed].push(callback); } else { queueMicrotask(() => callback(null, null)); } return; } this[kClosed] = true; this[kOnClosed].push(callback); const onClosed = () => { const callbacks = this[kOnClosed]; this[kOnClosed] = null; for (let i = 0; i < callbacks.length; i++) { callbacks[i](null, null); } }; this[kClose]().then(() => this.destroy()).then(() => { queueMicrotask(onClosed); }); } destroy(err, callback) { if (typeof err === "function") { callback = err; err = null; } if (callback === void 0) { return new Promise((resolve, reject) => { this.destroy(err, (err2, data) => { return err2 ? ( /* istanbul ignore next: should never error */ reject(err2) ) : resolve(data); }); }); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (this[kDestroyed]) { if (this[kOnDestroyed]) { this[kOnDestroyed].push(callback); } else { queueMicrotask(() => callback(null, null)); } return; } if (!err) { err = new ClientDestroyedError(); } this[kDestroyed] = true; this[kOnDestroyed] = this[kOnDestroyed] || []; this[kOnDestroyed].push(callback); const onDestroyed = () => { const callbacks = this[kOnDestroyed]; this[kOnDestroyed] = null; for (let i = 0; i < callbacks.length; i++) { callbacks[i](null, null); } }; this[kDestroy](err).then(() => { queueMicrotask(onDestroyed); }); } [kInterceptedDispatch](opts, handler2) { if (!this[kInterceptors] || this[kInterceptors].length === 0) { this[kInterceptedDispatch] = this[kDispatch]; return this[kDispatch](opts, handler2); } let dispatch = this[kDispatch].bind(this); for (let i = this[kInterceptors].length - 1; i >= 0; i--) { dispatch = this[kInterceptors][i](dispatch); } this[kInterceptedDispatch] = dispatch; return dispatch(opts, handler2); } dispatch(opts, handler2) { if (!handler2 || typeof handler2 !== "object") { throw new InvalidArgumentError("handler must be an object"); } try { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("opts must be an object."); } if (this[kDestroyed] || this[kOnDestroyed]) { throw new ClientDestroyedError(); } if (this[kClosed]) { throw new ClientClosedError(); } return this[kInterceptedDispatch](opts, handler2); } catch (err) { if (typeof handler2.onError !== "function") { throw new InvalidArgumentError("invalid onError method"); } handler2.onError(err); return false; } } }; module2.exports = DispatcherBase; } }); // node_modules/undici/lib/util/timers.js var require_timers = __commonJS({ "node_modules/undici/lib/util/timers.js"(exports2, module2) { "use strict"; var fastNow = 0; var RESOLUTION_MS = 1e3; var TICK_MS = (RESOLUTION_MS >> 1) - 1; var fastNowTimeout; var kFastTimer = /* @__PURE__ */ Symbol("kFastTimer"); var fastTimers = []; var NOT_IN_LIST = -2; var TO_BE_CLEARED = -1; var PENDING = 0; var ACTIVE = 1; function onTick() { fastNow += TICK_MS; let idx = 0; let len = fastTimers.length; while (idx < len) { const timer = fastTimers[idx]; if (timer._state === PENDING) { timer._idleStart = fastNow - TICK_MS; timer._state = ACTIVE; } else if (timer._state === ACTIVE && fastNow >= timer._idleStart + timer._idleTimeout) { timer._state = TO_BE_CLEARED; timer._idleStart = -1; timer._onTimeout(timer._timerArg); } if (timer._state === TO_BE_CLEARED) { timer._state = NOT_IN_LIST; if (--len !== 0) { fastTimers[idx] = fastTimers[len]; } } else { ++idx; } } fastTimers.length = len; if (fastTimers.length !== 0) { refreshTimeout(); } } function refreshTimeout() { if (fastNowTimeout) { fastNowTimeout.refresh(); } else { clearTimeout(fastNowTimeout); fastNowTimeout = setTimeout(onTick, TICK_MS); if (fastNowTimeout.unref) { fastNowTimeout.unref(); } } } var FastTimer = class { [kFastTimer] = true; /** * The state of the timer, which can be one of the following: * - NOT_IN_LIST (-2) * - TO_BE_CLEARED (-1) * - PENDING (0) * - ACTIVE (1) * * @type {-2|-1|0|1} * @private */ _state = NOT_IN_LIST; /** * The number of milliseconds to wait before calling the callback. * * @type {number} * @private */ _idleTimeout = -1; /** * The time in milliseconds when the timer was started. This value is used to * calculate when the timer should expire. * * @type {number} * @default -1 * @private */ _idleStart = -1; /** * The function to be executed when the timer expires. * @type {Function} * @private */ _onTimeout; /** * The argument to be passed to the callback when the timer expires. * * @type {*} * @private */ _timerArg; /** * @constructor * @param {Function} callback A function to be executed after the timer * expires. * @param {number} delay The time, in milliseconds that the timer should wait * before the specified function or code is executed. * @param {*} arg */ constructor(callback, delay, arg) { this._onTimeout = callback; this._idleTimeout = delay; this._timerArg = arg; this.refresh(); } /** * Sets the timer's start time to the current time, and reschedules the timer * to call its callback at the previously specified duration adjusted to the * current time. * Using this on a timer that has already called its callback will reactivate * the timer. * * @returns {void} */ refresh() { if (this._state === NOT_IN_LIST) { fastTimers.push(this); } if (!fastNowTimeout || fastTimers.length === 1) { refreshTimeout(); } this._state = PENDING; } /** * The `clear` method cancels the timer, preventing it from executing. * * @returns {void} * @private */ clear() { this._state = TO_BE_CLEARED; this._idleStart = -1; } }; module2.exports = { /** * The setTimeout() method sets a timer which executes a function once the * timer expires. * @param {Function} callback A function to be executed after the timer * expires. * @param {number} delay The time, in milliseconds that the timer should * wait before the specified function or code is executed. * @param {*} [arg] An optional argument to be passed to the callback function * when the timer expires. * @returns {NodeJS.Timeout|FastTimer} */ setTimeout(callback, delay, arg) { return delay <= RESOLUTION_MS ? setTimeout(callback, delay, arg) : new FastTimer(callback, delay, arg); }, /** * The clearTimeout method cancels an instantiated Timer previously created * by calling setTimeout. * * @param {NodeJS.Timeout|FastTimer} timeout */ clearTimeout(timeout) { if (timeout[kFastTimer]) { timeout.clear(); } else { clearTimeout(timeout); } }, /** * The setFastTimeout() method sets a fastTimer which executes a function once * the timer expires. * @param {Function} callback A function to be executed after the timer * expires. * @param {number} delay The time, in milliseconds that the timer should * wait before the specified function or code is executed. * @param {*} [arg] An optional argument to be passed to the callback function * when the timer expires. * @returns {FastTimer} */ setFastTimeout(callback, delay, arg) { return new FastTimer(callback, delay, arg); }, /** * The clearTimeout method cancels an instantiated FastTimer previously * created by calling setFastTimeout. * * @param {FastTimer} timeout */ clearFastTimeout(timeout) { timeout.clear(); }, /** * The now method returns the value of the internal fast timer clock. * * @returns {number} */ now() { return fastNow; }, /** * Trigger the onTick function to process the fastTimers array. * Exported for testing purposes only. * Marking as deprecated to discourage any use outside of testing. * @deprecated * @param {number} [delay=0] The delay in milliseconds to add to the now value. */ tick(delay = 0) { fastNow += delay - RESOLUTION_MS + 1; onTick(); onTick(); }, /** * Reset FastTimers. * Exported for testing purposes only. * Marking as deprecated to discourage any use outside of testing. * @deprecated */ reset() { fastNow = 0; fastTimers.length = 0; clearTimeout(fastNowTimeout); fastNowTimeout = null; }, /** * Exporting for testing purposes only. * Marking as deprecated to discourage any use outside of testing. * @deprecated */ kFastTimer }; } }); // node_modules/undici/lib/core/connect.js var require_connect = __commonJS({ "node_modules/undici/lib/core/connect.js"(exports2, module2) { "use strict"; var net = require("node:net"); var assert = require("node:assert"); var util2 = require_util(); var { InvalidArgumentError, ConnectTimeoutError } = require_errors(); var timers = require_timers(); function noop2() { } var tls; var SessionCache; if (global.FinalizationRegistry && !(process.env.NODE_V8_COVERAGE || process.env.UNDICI_NO_FG)) { SessionCache = class WeakSessionCache { constructor(maxCachedSessions) { this._maxCachedSessions = maxCachedSessions; this._sessionCache = /* @__PURE__ */ new Map(); this._sessionRegistry = new global.FinalizationRegistry((key) => { if (this._sessionCache.size < this._maxCachedSessions) { return; } const ref = this._sessionCache.get(key); if (ref !== void 0 && ref.deref() === void 0) { this._sessionCache.delete(key); } }); } get(sessionKey) { const ref = this._sessionCache.get(sessionKey); return ref ? ref.deref() : null; } set(sessionKey, session) { if (this._maxCachedSessions === 0) { return; } this._sessionCache.set(sessionKey, new WeakRef(session)); this._sessionRegistry.register(session, sessionKey); } }; } else { SessionCache = class SimpleSessionCache { constructor(maxCachedSessions) { this._maxCachedSessions = maxCachedSessions; this._sessionCache = /* @__PURE__ */ new Map(); } get(sessionKey) { return this._sessionCache.get(sessionKey); } set(sessionKey, session) { if (this._maxCachedSessions === 0) { return; } if (this._sessionCache.size >= this._maxCachedSessions) { const { value: oldestKey } = this._sessionCache.keys().next(); this._sessionCache.delete(oldestKey); } this._sessionCache.set(sessionKey, session); } }; } function buildConnector({ allowH2, maxCachedSessions, socketPath, timeout, session: customSession, ...opts }) { if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) { throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero"); } const options = { path: socketPath, ...opts }; const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions); timeout = timeout == null ? 1e4 : timeout; allowH2 = allowH2 != null ? allowH2 : false; return function connect({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { let socket; if (protocol === "https:") { if (!tls) { tls = require("node:tls"); } servername = servername || options.servername || util2.getServerName(host) || null; const sessionKey = servername || hostname; assert(sessionKey); const session = customSession || sessionCache.get(sessionKey) || null; port = port || 443; socket = tls.connect({ highWaterMark: 16384, // TLS in node can't have bigger HWM anyway... ...options, servername, session, localAddress, // TODO(HTTP/2): Add support for h2c ALPNProtocols: allowH2 ? ["http/1.1", "h2"] : ["http/1.1"], socket: httpSocket, // upgrade socket connection port, host: hostname }); socket.on("session", function(session2) { sessionCache.set(sessionKey, session2); }); } else { assert(!httpSocket, "httpSocket can only be sent on TLS update"); port = port || 80; socket = net.connect({ highWaterMark: 64 * 1024, // Same as nodejs fs streams. ...options, localAddress, port, host: hostname }); } if (options.keepAlive == null || options.keepAlive) { const keepAliveInitialDelay = options.keepAliveInitialDelay === void 0 ? 6e4 : options.keepAliveInitialDelay; socket.setKeepAlive(true, keepAliveInitialDelay); } const clearConnectTimeout = setupConnectTimeout(new WeakRef(socket), { timeout, hostname, port }); socket.setNoDelay(true).once(protocol === "https:" ? "secureConnect" : "connect", function() { queueMicrotask(clearConnectTimeout); if (callback) { const cb = callback; callback = null; cb(null, this); } }).on("error", function(err) { queueMicrotask(clearConnectTimeout); if (callback) { const cb = callback; callback = null; cb(err); } }); return socket; }; } var setupConnectTimeout = process.platform === "win32" ? (socketWeakRef, opts) => { if (!opts.timeout) { return noop2; } let s1 = null; let s2 = null; const fastTimer = timers.setFastTimeout(() => { s1 = setImmediate(() => { s2 = setImmediate(() => onConnectTimeout(socketWeakRef.deref(), opts)); }); }, opts.timeout); return () => { timers.clearFastTimeout(fastTimer); clearImmediate(s1); clearImmediate(s2); }; } : (socketWeakRef, opts) => { if (!opts.timeout) { return noop2; } let s1 = null; const fastTimer = timers.setFastTimeout(() => { s1 = setImmediate(() => { onConnectTimeout(socketWeakRef.deref(), opts); }); }, opts.timeout); return () => { timers.clearFastTimeout(fastTimer); clearImmediate(s1); }; }; function onConnectTimeout(socket, opts) { if (socket == null) { return; } let message = "Connect Timeout Error"; if (Array.isArray(socket.autoSelectFamilyAttemptedAddresses)) { message += ` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`; } else { message += ` (attempted address: ${opts.hostname}:${opts.port},`; } message += ` timeout: ${opts.timeout}ms)`; util2.destroy(socket, new ConnectTimeoutError(message)); } module2.exports = buildConnector; } }); // node_modules/undici/lib/llhttp/utils.js var require_utils = __commonJS({ "node_modules/undici/lib/llhttp/utils.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.enumToMap = void 0; function enumToMap(obj) { const res = {}; Object.keys(obj).forEach((key) => { const value = obj[key]; if (typeof value === "number") { res[key] = value; } }); return res; } exports2.enumToMap = enumToMap; } }); // node_modules/undici/lib/llhttp/constants.js var require_constants2 = __commonJS({ "node_modules/undici/lib/llhttp/constants.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.SPECIAL_HEADERS = exports2.HEADER_STATE = exports2.MINOR = exports2.MAJOR = exports2.CONNECTION_TOKEN_CHARS = exports2.HEADER_CHARS = exports2.TOKEN = exports2.STRICT_TOKEN = exports2.HEX = exports2.URL_CHAR = exports2.STRICT_URL_CHAR = exports2.USERINFO_CHARS = exports2.MARK = exports2.ALPHANUM = exports2.NUM = exports2.HEX_MAP = exports2.NUM_MAP = exports2.ALPHA = exports2.FINISH = exports2.H_METHOD_MAP = exports2.METHOD_MAP = exports2.METHODS_RTSP = exports2.METHODS_ICE = exports2.METHODS_HTTP = exports2.METHODS = exports2.LENIENT_FLAGS = exports2.FLAGS = exports2.TYPE = exports2.ERROR = void 0; var utils_1 = require_utils(); var ERROR; (function(ERROR2) { ERROR2[ERROR2["OK"] = 0] = "OK"; ERROR2[ERROR2["INTERNAL"] = 1] = "INTERNAL"; ERROR2[ERROR2["STRICT"] = 2] = "STRICT"; ERROR2[ERROR2["LF_EXPECTED"] = 3] = "LF_EXPECTED"; ERROR2[ERROR2["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; ERROR2[ERROR2["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; ERROR2[ERROR2["INVALID_METHOD"] = 6] = "INVALID_METHOD"; ERROR2[ERROR2["INVALID_URL"] = 7] = "INVALID_URL"; ERROR2[ERROR2["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; ERROR2[ERROR2["INVALID_VERSION"] = 9] = "INVALID_VERSION"; ERROR2[ERROR2["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; ERROR2[ERROR2["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; ERROR2[ERROR2["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; ERROR2[ERROR2["INVALID_STATUS"] = 13] = "INVALID_STATUS"; ERROR2[ERROR2["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; ERROR2[ERROR2["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; ERROR2[ERROR2["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; ERROR2[ERROR2["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; ERROR2[ERROR2["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; ERROR2[ERROR2["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; ERROR2[ERROR2["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; ERROR2[ERROR2["PAUSED"] = 21] = "PAUSED"; ERROR2[ERROR2["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; ERROR2[ERROR2["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; ERROR2[ERROR2["USER"] = 24] = "USER"; })(ERROR = exports2.ERROR || (exports2.ERROR = {})); var TYPE; (function(TYPE2) { TYPE2[TYPE2["BOTH"] = 0] = "BOTH"; TYPE2[TYPE2["REQUEST"] = 1] = "REQUEST"; TYPE2[TYPE2["RESPONSE"] = 2] = "RESPONSE"; })(TYPE = exports2.TYPE || (exports2.TYPE = {})); var FLAGS; (function(FLAGS2) { FLAGS2[FLAGS2["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; FLAGS2[FLAGS2["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; FLAGS2[FLAGS2["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; FLAGS2[FLAGS2["CHUNKED"] = 8] = "CHUNKED"; FLAGS2[FLAGS2["UPGRADE"] = 16] = "UPGRADE"; FLAGS2[FLAGS2["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; FLAGS2[FLAGS2["SKIPBODY"] = 64] = "SKIPBODY"; FLAGS2[FLAGS2["TRAILING"] = 128] = "TRAILING"; FLAGS2[FLAGS2["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; })(FLAGS = exports2.FLAGS || (exports2.FLAGS = {})); var LENIENT_FLAGS; (function(LENIENT_FLAGS2) { LENIENT_FLAGS2[LENIENT_FLAGS2["HEADERS"] = 1] = "HEADERS"; LENIENT_FLAGS2[LENIENT_FLAGS2["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; LENIENT_FLAGS2[LENIENT_FLAGS2["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; })(LENIENT_FLAGS = exports2.LENIENT_FLAGS || (exports2.LENIENT_FLAGS = {})); var METHODS; (function(METHODS2) { METHODS2[METHODS2["DELETE"] = 0] = "DELETE"; METHODS2[METHODS2["GET"] = 1] = "GET"; METHODS2[METHODS2["HEAD"] = 2] = "HEAD"; METHODS2[METHODS2["POST"] = 3] = "POST"; METHODS2[METHODS2["PUT"] = 4] = "PUT"; METHODS2[METHODS2["CONNECT"] = 5] = "CONNECT"; METHODS2[METHODS2["OPTIONS"] = 6] = "OPTIONS"; METHODS2[METHODS2["TRACE"] = 7] = "TRACE"; METHODS2[METHODS2["COPY"] = 8] = "COPY"; METHODS2[METHODS2["LOCK"] = 9] = "LOCK"; METHODS2[METHODS2["MKCOL"] = 10] = "MKCOL"; METHODS2[METHODS2["MOVE"] = 11] = "MOVE"; METHODS2[METHODS2["PROPFIND"] = 12] = "PROPFIND"; METHODS2[METHODS2["PROPPATCH"] = 13] = "PROPPATCH"; METHODS2[METHODS2["SEARCH"] = 14] = "SEARCH"; METHODS2[METHODS2["UNLOCK"] = 15] = "UNLOCK"; METHODS2[METHODS2["BIND"] = 16] = "BIND"; METHODS2[METHODS2["REBIND"] = 17] = "REBIND"; METHODS2[METHODS2["UNBIND"] = 18] = "UNBIND"; METHODS2[METHODS2["ACL"] = 19] = "ACL"; METHODS2[METHODS2["REPORT"] = 20] = "REPORT"; METHODS2[METHODS2["MKACTIVITY"] = 21] = "MKACTIVITY"; METHODS2[METHODS2["CHECKOUT"] = 22] = "CHECKOUT"; METHODS2[METHODS2["MERGE"] = 23] = "MERGE"; METHODS2[METHODS2["M-SEARCH"] = 24] = "M-SEARCH"; METHODS2[METHODS2["NOTIFY"] = 25] = "NOTIFY"; METHODS2[METHODS2["SUBSCRIBE"] = 26] = "SUBSCRIBE"; METHODS2[METHODS2["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; METHODS2[METHODS2["PATCH"] = 28] = "PATCH"; METHODS2[METHODS2["PURGE"] = 29] = "PURGE"; METHODS2[METHODS2["MKCALENDAR"] = 30] = "MKCALENDAR"; METHODS2[METHODS2["LINK"] = 31] = "LINK"; METHODS2[METHODS2["UNLINK"] = 32] = "UNLINK"; METHODS2[METHODS2["SOURCE"] = 33] = "SOURCE"; METHODS2[METHODS2["PRI"] = 34] = "PRI"; METHODS2[METHODS2["DESCRIBE"] = 35] = "DESCRIBE"; METHODS2[METHODS2["ANNOUNCE"] = 36] = "ANNOUNCE"; METHODS2[METHODS2["SETUP"] = 37] = "SETUP"; METHODS2[METHODS2["PLAY"] = 38] = "PLAY"; METHODS2[METHODS2["PAUSE"] = 39] = "PAUSE"; METHODS2[METHODS2["TEARDOWN"] = 40] = "TEARDOWN"; METHODS2[METHODS2["GET_PARAMETER"] = 41] = "GET_PARAMETER"; METHODS2[METHODS2["SET_PARAMETER"] = 42] = "SET_PARAMETER"; METHODS2[METHODS2["REDIRECT"] = 43] = "REDIRECT"; METHODS2[METHODS2["RECORD"] = 44] = "RECORD"; METHODS2[METHODS2["FLUSH"] = 45] = "FLUSH"; })(METHODS = exports2.METHODS || (exports2.METHODS = {})); exports2.METHODS_HTTP = [ METHODS.DELETE, METHODS.GET, METHODS.HEAD, METHODS.POST, METHODS.PUT, METHODS.CONNECT, METHODS.OPTIONS, METHODS.TRACE, METHODS.COPY, METHODS.LOCK, METHODS.MKCOL, METHODS.MOVE, METHODS.PROPFIND, METHODS.PROPPATCH, METHODS.SEARCH, METHODS.UNLOCK, METHODS.BIND, METHODS.REBIND, METHODS.UNBIND, METHODS.ACL, METHODS.REPORT, METHODS.MKACTIVITY, METHODS.CHECKOUT, METHODS.MERGE, METHODS["M-SEARCH"], METHODS.NOTIFY, METHODS.SUBSCRIBE, METHODS.UNSUBSCRIBE, METHODS.PATCH, METHODS.PURGE, METHODS.MKCALENDAR, METHODS.LINK, METHODS.UNLINK, METHODS.PRI, // TODO(indutny): should we allow it with HTTP? METHODS.SOURCE ]; exports2.METHODS_ICE = [ METHODS.SOURCE ]; exports2.METHODS_RTSP = [ METHODS.OPTIONS, METHODS.DESCRIBE, METHODS.ANNOUNCE, METHODS.SETUP, METHODS.PLAY, METHODS.PAUSE, METHODS.TEARDOWN, METHODS.GET_PARAMETER, METHODS.SET_PARAMETER, METHODS.REDIRECT, METHODS.RECORD, METHODS.FLUSH, // For AirPlay METHODS.GET, METHODS.POST ]; exports2.METHOD_MAP = utils_1.enumToMap(METHODS); exports2.H_METHOD_MAP = {}; Object.keys(exports2.METHOD_MAP).forEach((key) => { if (/^H/.test(key)) { exports2.H_METHOD_MAP[key] = exports2.METHOD_MAP[key]; } }); var FINISH; (function(FINISH2) { FINISH2[FINISH2["SAFE"] = 0] = "SAFE"; FINISH2[FINISH2["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; FINISH2[FINISH2["UNSAFE"] = 2] = "UNSAFE"; })(FINISH = exports2.FINISH || (exports2.FINISH = {})); exports2.ALPHA = []; for (let i = "A".charCodeAt(0); i <= "Z".charCodeAt(0); i++) { exports2.ALPHA.push(String.fromCharCode(i)); exports2.ALPHA.push(String.fromCharCode(i + 32)); } exports2.NUM_MAP = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9 }; exports2.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 }; exports2.NUM = [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ]; exports2.ALPHANUM = exports2.ALPHA.concat(exports2.NUM); exports2.MARK = ["-", "_", ".", "!", "~", "*", "'", "(", ")"]; exports2.USERINFO_CHARS = exports2.ALPHANUM.concat(exports2.MARK).concat(["%", ";", ":", "&", "=", "+", "$", ","]); exports2.STRICT_URL_CHAR = [ "!", '"', "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", ":", ";", "<", "=", ">", "@", "[", "\\", "]", "^", "_", "`", "{", "|", "}", "~" ].concat(exports2.ALPHANUM); exports2.URL_CHAR = exports2.STRICT_URL_CHAR.concat([" ", "\f"]); for (let i = 128; i <= 255; i++) { exports2.URL_CHAR.push(i); } exports2.HEX = exports2.NUM.concat(["a", "b", "c", "d", "e", "f", "A", "B", "C", "D", "E", "F"]); exports2.STRICT_TOKEN = [ "!", "#", "$", "%", "&", "'", "*", "+", "-", ".", "^", "_", "`", "|", "~" ].concat(exports2.ALPHANUM); exports2.TOKEN = exports2.STRICT_TOKEN.concat([" "]); exports2.HEADER_CHARS = [" "]; for (let i = 32; i <= 255; i++) { if (i !== 127) { exports2.HEADER_CHARS.push(i); } } exports2.CONNECTION_TOKEN_CHARS = exports2.HEADER_CHARS.filter((c) => c !== 44); exports2.MAJOR = exports2.NUM_MAP; exports2.MINOR = exports2.MAJOR; var HEADER_STATE; (function(HEADER_STATE2) { HEADER_STATE2[HEADER_STATE2["GENERAL"] = 0] = "GENERAL"; HEADER_STATE2[HEADER_STATE2["CONNECTION"] = 1] = "CONNECTION"; HEADER_STATE2[HEADER_STATE2["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; HEADER_STATE2[HEADER_STATE2["UPGRADE"] = 4] = "UPGRADE"; HEADER_STATE2[HEADER_STATE2["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; HEADER_STATE2[HEADER_STATE2["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; HEADER_STATE2[HEADER_STATE2["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; })(HEADER_STATE = exports2.HEADER_STATE || (exports2.HEADER_STATE = {})); exports2.SPECIAL_HEADERS = { "connection": HEADER_STATE.CONNECTION, "content-length": HEADER_STATE.CONTENT_LENGTH, "proxy-connection": HEADER_STATE.CONNECTION, "transfer-encoding": HEADER_STATE.TRANSFER_ENCODING, "upgrade": HEADER_STATE.UPGRADE }; } }); // node_modules/undici/lib/llhttp/llhttp-wasm.js var require_llhttp_wasm = __commonJS({ "node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports2, module2) { "use strict"; var { Buffer: Buffer2 } = require("node:buffer"); module2.exports = Buffer2.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEVDF8LQZIBIQMgASAERg2aAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGhzwBqLQAARw1dIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAybAgsgAkEANgIAIAZBAWohAUEeDF4LIAEgBEYEQEGTASEDDJoCCyABLQAAQcwARw1bIAFBAWohAUEKDF0LIAEgBEYEQEGUASEDDJkCCwJAAkAgAS0AAEHBAGsODwBcXFxcXFxcXFxcXFxcAVwLIAFBAWohAUH+ACEDDIACCyABQQFqIQFB/wAhAwz/AQsgASAERgRAQZUBIQMMmAILAkACQCABLQAAQcEAaw4DAFsBWwsgAUEBaiEBQf0AIQMM/wELIAFBAWohAUGAASEDDP4BC0GWASEDIAEgBEYNlgIgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBp88Aai0AAEcNWSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMlwILIAJBADYCACAGQQFqIQFBCwxaCyABIARGBEBBlwEhAwyWAgsCQAJAAkACQCABLQAAQS1rDiMAW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1sBW1tbW1sCW1tbA1sLIAFBAWohAUH7ACEDDP8BCyABQQFqIQFB/AAhAwz+AQsgAUEBaiEBQYEBIQMM/QELIAFBAWohAUGCASEDDPwBC0GYASEDIAEgBEYNlAIgAigCACIAIAQgAWtqIQUgASAAa0EEaiEGAkADQCABLQAAIABBqc8Aai0AAEcNVyAAQQRGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMlQILIAJBADYCACAGQQFqIQFBGQxYC0GZASEDIAEgBEYNkwIgAigCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBrs8Aai0AAEcNViAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMlAILIAJBADYCACAGQQFqIQFBBgxXC0GaASEDIAEgBEYNkgIgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBtM8Aai0AAEcNVSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMkwILIAJBADYCACAGQQFqIQFBHAxWC0GbASEDIAEgBEYNkQIgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBts8Aai0AAEcNVCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMkgILIAJBADYCACAGQQFqIQFBJwxVCyABIARGBEBBnAEhAwyRAgsCQAJAIAEtAABB1ABrDgIAAVQLIAFBAWohAUGGASEDDPgBCyABQQFqIQFBhwEhAwz3AQtBnQEhAyABIARGDY8CIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjPAGotAABHDVIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADJACCyACQQA2AgAgBkEBaiEBQSYMUwtBngEhAyABIARGDY4CIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbrPAGotAABHDVEgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADI8CCyACQQA2AgAgBkEBaiEBQQMMUgtBnwEhAyABIARGDY0CIAIoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQe3PAGotAABHDVAgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADI4CCyACQQA2AgAgBkEBaiEBQQwMUQtBoAEhAyABIARGDYwCIAIoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQbzPAGotAABHDU8gAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADI0CCyACQQA2AgAgBkEBaiEBQQ0MUAsgASAERgRAQaEBIQMMjAILAkACQCABLQAAQcYAaw4LAE9PT09PT09PTwFPCyABQQFqIQFBiwEhAwzzAQsgAUEBaiEBQYwBIQMM8gELIAEgBEYEQEGiASEDDIsCCyABLQAAQdAARw1MIAFBAWohAQxGCyABIARGBEBBowEhAwyKAgsCQAJAIAEtAABByQBrDgcBTU1NTU0ATQsgAUEBaiEBQY4BIQMM8QELIAFBAWohAUEiDE0LQaQBIQMgASAERg2IAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHAzwBqLQAARw1LIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyJAgsgAkEANgIAIAZBAWohAUEdDEwLIAEgBEYEQEGlASEDDIgCCwJAAkAgAS0AAEHSAGsOAwBLAUsLIAFBAWohAUGQASEDDO8BCyABQQFqIQFBBAxLCyABIARGBEBBpgEhAwyHAgsCQAJAAkACQAJAIAEtAABBwQBrDhUATU1NTU1NTU1NTQFNTQJNTQNNTQRNCyABQQFqIQFBiAEhAwzxAQsgAUEBaiEBQYkBIQMM8AELIAFBAWohAUGKASEDDO8BCyABQQFqIQFBjwEhAwzuAQsgAUEBaiEBQZEBIQMM7QELQacBIQMgASAERg2FAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHtzwBqLQAARw1IIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyGAgsgAkEANgIAIAZBAWohAUERDEkLQagBIQMgASAERg2EAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHCzwBqLQAARw1HIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyFAgsgAkEANgIAIAZBAWohAUEsDEgLQakBIQMgASAERg2DAiACKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHFzwBqLQAARw1GIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyEAgsgAkEANgIAIAZBAWohAUErDEcLQaoBIQMgASAERg2CAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHKzwBqLQAARw1FIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyDAgsgAkEANgIAIAZBAWohAUEUDEYLIAEgBEYEQEGrASEDDIICCwJAAkACQAJAIAEtAABBwgBrDg8AAQJHR0dHR0dHR0dHRwNHCyABQQFqIQFBkwEhAwzrAQsgAUEBaiEBQZQBIQMM6gELIAFBAWohAUGVASEDDOkBCyABQQFqIQFBlgEhAwzoAQsgASAERgRAQawBIQMMgQILIAEtAABBxQBHDUIgAUEBaiEBDD0LQa0BIQMgASAERg3/ASACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHNzwBqLQAARw1CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyAAgsgAkEANgIAIAZBAWohAUEODEMLIAEgBEYEQEGuASEDDP8BCyABLQAAQdAARw1AIAFBAWohAUElDEILQa8BIQMgASAERg39ASACKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEHQzwBqLQAARw1AIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAz+AQsgAkEANgIAIAZBAWohAUEqDEELIAEgBEYEQEGwASEDDP0BCwJAAkAgAS0AAEHVAGsOCwBAQEBAQEBAQEABQAsgAUEBaiEBQZoBIQMM5AELIAFBAWohAUGbASEDDOMBCyABIARGBEBBsQEhAwz8AQsCQAJAIAEtAABBwQBrDhQAPz8/Pz8/Pz8/Pz8/Pz8/Pz8/AT8LIAFBAWohAUGZASEDDOMBCyABQQFqIQFBnAEhAwziAQtBsgEhAyABIARGDfoBIAIoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQdnPAGotAABHDT0gAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADPsBCyACQQA2AgAgBkEBaiEBQSEMPgtBswEhAyABIARGDfkBIAIoAgAiACAEIAFraiEFIAEgAGtBBmohBgJAA0AgAS0AACAAQd3PAGotAABHDTwgAEEGRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADPoBCyACQQA2AgAgBkEBaiEBQRoMPQsgASAERgRAQbQBIQMM+QELAkACQAJAIAEtAABBxQBrDhEAPT09PT09PT09AT09PT09Aj0LIAFBAWohAUGdASEDDOEBCyABQQFqIQFBngEhAwzgAQsgAUEBaiEBQZ8BIQMM3wELQbUBIQMgASAERg33ASACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHkzwBqLQAARw06IABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAz4AQsgAkEANgIAIAZBAWohAUEoDDsLQbYBIQMgASAERg32ASACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHqzwBqLQAARw05IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAz3AQsgAkEANgIAIAZBAWohAUEHDDoLIAEgBEYEQEG3ASEDDPYBCwJAAkAgAS0AAEHFAGsODgA5OTk5OTk5OTk5OTkBOQsgAUEBaiEBQaEBIQMM3QELIAFBAWohAUGiASEDDNwBC0G4ASEDIAEgBEYN9AEgAigCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABB7c8Aai0AAEcNNyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAM9QELIAJBADYCACAGQQFqIQFBEgw4C0G5ASEDIAEgBEYN8wEgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB8M8Aai0AAEcNNiAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAM9AELIAJBADYCACAGQQFqIQFBIAw3C0G6ASEDIAEgBEYN8gEgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB8s8Aai0AAEcNNSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAM8wELIAJBADYCACAGQQFqIQFBDww2CyABIARGBEBBuwEhAwzyAQsCQAJAIAEtAABByQBrDgcANTU1NTUBNQsgAUEBaiEBQaUBIQMM2QELIAFBAWohAUGmASEDDNgBC0G8ASEDIAEgBEYN8AEgAigCACIAIAQgAWtqIQUgASAAa0EHaiEGAkADQCABLQAAIABB9M8Aai0AAEcNMyAAQQdGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAM8QELIAJBADYCACAGQQFqIQFBGww0CyABIARGBEBBvQEhAwzwAQsCQAJAAkAgAS0AAEHCAGsOEgA0NDQ0NDQ0NDQBNDQ0NDQ0AjQLIAFBAWohAUGkASEDDNgBCyABQQFqIQFBpwEhAwzXAQsgAUEBaiEBQagBIQMM1gELIAEgBEYEQEG+ASEDDO8BCyABLQAAQc4ARw0wIAFBAWohAQwsCyABIARGBEBBvwEhAwzuAQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABLQAAQcEAaw4VAAECAz8EBQY/Pz8HCAkKCz8MDQ4PPwsgAUEBaiEBQegAIQMM4wELIAFBAWohAUHpACEDDOIBCyABQQFqIQFB7gAhAwzhAQsgAUEBaiEBQfIAIQMM4AELIAFBAWohAUHzACEDDN8BCyABQQFqIQFB9gAhAwzeAQsgAUEBaiEBQfcAIQMM3QELIAFBAWohAUH6ACEDDNwBCyABQQFqIQFBgwEhAwzbAQsgAUEBaiEBQYQBIQMM2gELIAFBAWohAUGFASEDDNkBCyABQQFqIQFBkgEhAwzYAQsgAUEBaiEBQZgBIQMM1wELIAFBAWohAUGgASEDDNYBCyABQQFqIQFBowEhAwzVAQsgAUEBaiEBQaoBIQMM1AELIAEgBEcEQCACQRA2AgggAiABNgIEQasBIQMM1AELQcABIQMM7AELQQAhAAJAIAIoAjgiA0UNACADKAI0IgNFDQAgAiADEQAAIQALIABFDV4gAEEVRw0HIAJB0QA2AhwgAiABNgIUIAJBsBc2AhAgAkEVNgIMQQAhAwzrAQsgAUEBaiABIARHDQgaQcIBIQMM6gELA0ACQCABLQAAQQprDgQIAAALAAsgBCABQQFqIgFHDQALQcMBIQMM6QELIAEgBEcEQCACQRE2AgggAiABNgIEQQEhAwzQAQtBxAEhAwzoAQsgASAERgRAQcUBIQMM6AELAkACQCABLQAAQQprDgQBKCgAKAsgAUEBagwJCyABQQFqDAULIAEgBEYEQEHGASEDDOcBCwJAAkAgAS0AAEEKaw4XAQsLAQsLCwsLCwsLCwsLCwsLCwsLCwALCyABQQFqIQELQbABIQMMzQELIAEgBEYEQEHIASEDDOYBCyABLQAAQSBHDQkgAkEAOwEyIAFBAWohAUGzASEDDMwBCwNAIAEhAAJAIAEgBEcEQCABLQAAQTBrQf8BcSIDQQpJDQEMJwtBxwEhAwzmAQsCQCACLwEyIgFBmTNLDQAgAiABQQpsIgU7ATIgBUH+/wNxIANB//8Dc0sNACAAQQFqIQEgAiADIAVqIgM7ATIgA0H//wNxQegHSQ0BCwtBACEDIAJBADYCHCACQcEJNgIQIAJBDTYCDCACIABBAWo2AhQM5AELIAJBADYCHCACIAE2AhQgAkHwDDYCECACQRs2AgxBACEDDOMBCyACKAIEIQAgAkEANgIEIAIgACABECYiAA0BIAFBAWoLIQFBrQEhAwzIAQsgAkHBATYCHCACIAA2AgwgAiABQQFqNgIUQQAhAwzgAQsgAigCBCEAIAJBADYCBCACIAAgARAmIgANASABQQFqCyEBQa4BIQMMxQELIAJBwgE2AhwgAiAANgIMIAIgAUEBajYCFEEAIQMM3QELIAJBADYCHCACIAE2AhQgAkGXCzYCECACQQ02AgxBACEDDNwBCyACQQA2AhwgAiABNgIUIAJB4xA2AhAgAkEJNgIMQQAhAwzbAQsgAkECOgAoDKwBC0EAIQMgAkEANgIcIAJBrws2AhAgAkECNgIMIAIgAUEBajYCFAzZAQtBAiEDDL8BC0ENIQMMvgELQSYhAwy9AQtBFSEDDLwBC0EWIQMMuwELQRghAwy6AQtBHCEDDLkBC0EdIQMMuAELQSAhAwy3AQtBISEDDLYBC0EjIQMMtQELQcYAIQMMtAELQS4hAwyzAQtBPSEDDLIBC0HLACEDDLEBC0HOACEDDLABC0HYACEDDK8BC0HZACEDDK4BC0HbACEDDK0BC0HxACEDDKwBC0H0ACEDDKsBC0GNASEDDKoBC0GXASEDDKkBC0GpASEDDKgBC0GvASEDDKcBC0GxASEDDKYBCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJB8Rs2AhAgAkEGNgIMDL0BCyACQQA2AgAgBkEBaiEBQSQLOgApIAIoAgQhACACQQA2AgQgAiAAIAEQJyIARQRAQeUAIQMMowELIAJB+QA2AhwgAiABNgIUIAIgADYCDEEAIQMMuwELIABBFUcEQCACQQA2AhwgAiABNgIUIAJBzA42AhAgAkEgNgIMQQAhAwy7AQsgAkH4ADYCHCACIAE2AhQgAkHKGDYCECACQRU2AgxBACEDDLoBCyACQQA2AhwgAiABNgIUIAJBjhs2AhAgAkEGNgIMQQAhAwy5AQsgAkEANgIcIAIgATYCFCACQf4RNgIQIAJBBzYCDEEAIQMMuAELIAJBADYCHCACIAE2AhQgAkGMHDYCECACQQc2AgxBACEDDLcBCyACQQA2AhwgAiABNgIUIAJBww82AhAgAkEHNgIMQQAhAwy2AQsgAkEANgIcIAIgATYCFCACQcMPNgIQIAJBBzYCDEEAIQMMtQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv", "base64"); } }); // node_modules/undici/lib/llhttp/llhttp_simd-wasm.js var require_llhttp_simd_wasm = __commonJS({ "node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports2, module2) { "use strict"; var { Buffer: Buffer2 } = require("node:buffer"); module2.exports = Buffer2.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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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==", "base64"); } }); // node_modules/undici/lib/web/fetch/constants.js var require_constants3 = __commonJS({ "node_modules/undici/lib/web/fetch/constants.js"(exports2, module2) { "use strict"; var corsSafeListedMethods = ( /** @type {const} */ ["GET", "HEAD", "POST"] ); var corsSafeListedMethodsSet = new Set(corsSafeListedMethods); var nullBodyStatus = ( /** @type {const} */ [101, 204, 205, 304] ); var redirectStatus = ( /** @type {const} */ [301, 302, 303, 307, 308] ); var redirectStatusSet = new Set(redirectStatus); var badPorts = ( /** @type {const} */ [ "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" ] ); var badPortsSet = new Set(badPorts); var referrerPolicy = ( /** @type {const} */ [ "", "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "strict-origin", "origin-when-cross-origin", "strict-origin-when-cross-origin", "unsafe-url" ] ); var referrerPolicySet = new Set(referrerPolicy); var requestRedirect = ( /** @type {const} */ ["follow", "manual", "error"] ); var safeMethods = ( /** @type {const} */ ["GET", "HEAD", "OPTIONS", "TRACE"] ); var safeMethodsSet = new Set(safeMethods); var requestMode = ( /** @type {const} */ ["navigate", "same-origin", "no-cors", "cors"] ); var requestCredentials = ( /** @type {const} */ ["omit", "same-origin", "include"] ); var requestCache = ( /** @type {const} */ [ "default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached" ] ); var requestBodyHeader = ( /** @type {const} */ [ "content-encoding", "content-language", "content-location", "content-type", // See https://github.com/nodejs/undici/issues/2021 // 'Content-Length' is a forbidden header name, which is typically // removed in the Headers implementation. However, undici doesn't // filter out headers, so we add it here. "content-length" ] ); var requestDuplex = ( /** @type {const} */ [ "half" ] ); var forbiddenMethods = ( /** @type {const} */ ["CONNECT", "TRACE", "TRACK"] ); var forbiddenMethodsSet = new Set(forbiddenMethods); var subresource = ( /** @type {const} */ [ "audio", "audioworklet", "font", "image", "manifest", "paintworklet", "script", "style", "track", "video", "xslt", "" ] ); var subresourceSet = new Set(subresource); module2.exports = { subresource, forbiddenMethods, requestBodyHeader, referrerPolicy, requestRedirect, requestMode, requestCredentials, requestCache, redirectStatus, corsSafeListedMethods, nullBodyStatus, safeMethods, badPorts, requestDuplex, subresourceSet, badPortsSet, redirectStatusSet, corsSafeListedMethodsSet, safeMethodsSet, forbiddenMethodsSet, referrerPolicySet }; } }); // node_modules/undici/lib/web/fetch/global.js var require_global = __commonJS({ "node_modules/undici/lib/web/fetch/global.js"(exports2, module2) { "use strict"; var globalOrigin = /* @__PURE__ */ Symbol.for("undici.globalOrigin.1"); function getGlobalOrigin() { return globalThis[globalOrigin]; } function setGlobalOrigin(newOrigin) { if (newOrigin === void 0) { Object.defineProperty(globalThis, globalOrigin, { value: void 0, writable: true, enumerable: false, configurable: false }); return; } const parsedURL = new URL(newOrigin); if (parsedURL.protocol !== "http:" && parsedURL.protocol !== "https:") { throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`); } Object.defineProperty(globalThis, globalOrigin, { value: parsedURL, writable: true, enumerable: false, configurable: false }); } module2.exports = { getGlobalOrigin, setGlobalOrigin }; } }); // node_modules/undici/lib/web/fetch/data-url.js var require_data_url = __commonJS({ "node_modules/undici/lib/web/fetch/data-url.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var encoder = new TextEncoder(); var HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/; var HTTP_WHITESPACE_REGEX = /[\u000A\u000D\u0009\u0020]/; var ASCII_WHITESPACE_REPLACE_REGEX = /[\u0009\u000A\u000C\u000D\u0020]/g; var HTTP_QUOTED_STRING_TOKENS = /^[\u0009\u0020-\u007E\u0080-\u00FF]+$/; function dataURLProcessor(dataURL) { assert(dataURL.protocol === "data:"); let input = URLSerializer(dataURL, true); input = input.slice(5); const position = { position: 0 }; let mimeType = collectASequenceOfCodePointsFast( ",", input, position ); const mimeTypeLength = mimeType.length; mimeType = removeASCIIWhitespace(mimeType, true, true); if (position.position >= input.length) { return "failure"; } position.position++; const encodedBody = input.slice(mimeTypeLength + 1); let body = stringPercentDecode(encodedBody); if (/;(\u0020){0,}base64$/i.test(mimeType)) { const stringBody = isomorphicDecode(body); body = forgivingBase64(stringBody); if (body === "failure") { return "failure"; } mimeType = mimeType.slice(0, -6); mimeType = mimeType.replace(/(\u0020)+$/, ""); mimeType = mimeType.slice(0, -1); } if (mimeType.startsWith(";")) { mimeType = "text/plain" + mimeType; } let mimeTypeRecord = parseMIMEType(mimeType); if (mimeTypeRecord === "failure") { mimeTypeRecord = parseMIMEType("text/plain;charset=US-ASCII"); } return { mimeType: mimeTypeRecord, body }; } function URLSerializer(url, excludeFragment = false) { if (!excludeFragment) { return url.href; } const href = url.href; const hashLength = url.hash.length; const serialized = hashLength === 0 ? href : href.substring(0, href.length - hashLength); if (!hashLength && href.endsWith("#")) { return serialized.slice(0, -1); } return serialized; } function collectASequenceOfCodePoints(condition, input, position) { let result = ""; while (position.position < input.length && condition(input[position.position])) { result += input[position.position]; position.position++; } return result; } function collectASequenceOfCodePointsFast(char, input, position) { const idx = input.indexOf(char, position.position); const start = position.position; if (idx === -1) { position.position = input.length; return input.slice(start); } position.position = idx; return input.slice(start, position.position); } function stringPercentDecode(input) { const bytes = encoder.encode(input); return percentDecode(bytes); } function isHexCharByte(byte) { return byte >= 48 && byte <= 57 || byte >= 65 && byte <= 70 || byte >= 97 && byte <= 102; } function hexByteToNumber(byte) { return ( // 0-9 byte >= 48 && byte <= 57 ? byte - 48 : (byte & 223) - 55 ); } function percentDecode(input) { const length = input.length; const output = new Uint8Array(length); let j = 0; for (let i = 0; i < length; ++i) { const byte = input[i]; if (byte !== 37) { output[j++] = byte; } else if (byte === 37 && !(isHexCharByte(input[i + 1]) && isHexCharByte(input[i + 2]))) { output[j++] = 37; } else { output[j++] = hexByteToNumber(input[i + 1]) << 4 | hexByteToNumber(input[i + 2]); i += 2; } } return length === j ? output : output.subarray(0, j); } function parseMIMEType(input) { input = removeHTTPWhitespace(input, true, true); const position = { position: 0 }; const type = collectASequenceOfCodePointsFast( "/", input, position ); if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) { return "failure"; } if (position.position > input.length) { return "failure"; } position.position++; let subtype = collectASequenceOfCodePointsFast( ";", input, position ); subtype = removeHTTPWhitespace(subtype, false, true); if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) { return "failure"; } const typeLowercase = type.toLowerCase(); const subtypeLowercase = subtype.toLowerCase(); const mimeType = { type: typeLowercase, subtype: subtypeLowercase, /** @type {Map} */ parameters: /* @__PURE__ */ new Map(), // https://mimesniff.spec.whatwg.org/#mime-type-essence essence: `${typeLowercase}/${subtypeLowercase}` }; while (position.position < input.length) { position.position++; collectASequenceOfCodePoints( // https://fetch.spec.whatwg.org/#http-whitespace (char) => HTTP_WHITESPACE_REGEX.test(char), input, position ); let parameterName = collectASequenceOfCodePoints( (char) => char !== ";" && char !== "=", input, position ); parameterName = parameterName.toLowerCase(); if (position.position < input.length) { if (input[position.position] === ";") { continue; } position.position++; } if (position.position > input.length) { break; } let parameterValue = null; if (input[position.position] === '"') { parameterValue = collectAnHTTPQuotedString(input, position, true); collectASequenceOfCodePointsFast( ";", input, position ); } else { parameterValue = collectASequenceOfCodePointsFast( ";", input, position ); parameterValue = removeHTTPWhitespace(parameterValue, false, true); if (parameterValue.length === 0) { continue; } } if (parameterName.length !== 0 && HTTP_TOKEN_CODEPOINTS.test(parameterName) && (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && !mimeType.parameters.has(parameterName)) { mimeType.parameters.set(parameterName, parameterValue); } } return mimeType; } function forgivingBase64(data) { data = data.replace(ASCII_WHITESPACE_REPLACE_REGEX, ""); let dataLength = data.length; if (dataLength % 4 === 0) { if (data.charCodeAt(dataLength - 1) === 61) { --dataLength; if (data.charCodeAt(dataLength - 1) === 61) { --dataLength; } } } if (dataLength % 4 === 1) { return "failure"; } if (/[^+/0-9A-Za-z]/.test(data.length === dataLength ? data : data.substring(0, dataLength))) { return "failure"; } const buffer = Buffer.from(data, "base64"); return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); } function collectAnHTTPQuotedString(input, position, extractValue) { const positionStart = position.position; let value = ""; assert(input[position.position] === '"'); position.position++; while (true) { value += collectASequenceOfCodePoints( (char) => char !== '"' && char !== "\\", input, position ); if (position.position >= input.length) { break; } const quoteOrBackslash = input[position.position]; position.position++; if (quoteOrBackslash === "\\") { if (position.position >= input.length) { value += "\\"; break; } value += input[position.position]; position.position++; } else { assert(quoteOrBackslash === '"'); break; } } if (extractValue) { return value; } return input.slice(positionStart, position.position); } function serializeAMimeType(mimeType) { assert(mimeType !== "failure"); const { parameters, essence } = mimeType; let serialization = essence; for (let [name, value] of parameters.entries()) { serialization += ";"; serialization += name; serialization += "="; if (!HTTP_TOKEN_CODEPOINTS.test(value)) { value = value.replace(/(\\|")/g, "\\$1"); value = '"' + value; value += '"'; } serialization += value; } return serialization; } function isHTTPWhiteSpace(char) { return char === 13 || char === 10 || char === 9 || char === 32; } function removeHTTPWhitespace(str, leading = true, trailing = true) { return removeChars(str, leading, trailing, isHTTPWhiteSpace); } function isASCIIWhitespace(char) { return char === 13 || char === 10 || char === 9 || char === 12 || char === 32; } function removeASCIIWhitespace(str, leading = true, trailing = true) { return removeChars(str, leading, trailing, isASCIIWhitespace); } function removeChars(str, leading, trailing, predicate) { let lead = 0; let trail = str.length - 1; if (leading) { while (lead < str.length && predicate(str.charCodeAt(lead))) lead++; } if (trailing) { while (trail > 0 && predicate(str.charCodeAt(trail))) trail--; } return lead === 0 && trail === str.length - 1 ? str : str.slice(lead, trail + 1); } function isomorphicDecode(input) { const length = input.length; if ((2 << 15) - 1 > length) { return String.fromCharCode.apply(null, input); } let result = ""; let i = 0; let addition = (2 << 15) - 1; while (i < length) { if (i + addition > length) { addition = length - i; } result += String.fromCharCode.apply(null, input.subarray(i, i += addition)); } return result; } function minimizeSupportedMimeType(mimeType) { switch (mimeType.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"; } if (mimeType.subtype.endsWith("+json")) { return "application/json"; } if (mimeType.subtype.endsWith("+xml")) { return "application/xml"; } return ""; } module2.exports = { dataURLProcessor, URLSerializer, collectASequenceOfCodePoints, collectASequenceOfCodePointsFast, stringPercentDecode, parseMIMEType, collectAnHTTPQuotedString, serializeAMimeType, removeChars, removeHTTPWhitespace, minimizeSupportedMimeType, HTTP_TOKEN_CODEPOINTS, isomorphicDecode }; } }); // node_modules/undici/lib/web/fetch/webidl.js var require_webidl = __commonJS({ "node_modules/undici/lib/web/fetch/webidl.js"(exports2, module2) { "use strict"; var { types, inspect } = require("node:util"); var { markAsUncloneable } = require("node:worker_threads"); var { toUSVString } = require_util(); var webidl = {}; webidl.converters = {}; webidl.util = {}; webidl.errors = {}; webidl.errors.exception = function(message) { return new TypeError(`${message.header}: ${message.message}`); }; webidl.errors.conversionFailed = function(context) { const plural = context.types.length === 1 ? "" : " one of"; const message = `${context.argument} could not be converted to${plural}: ${context.types.join(", ")}.`; return webidl.errors.exception({ header: context.prefix, message }); }; webidl.errors.invalidArgument = function(context) { return webidl.errors.exception({ header: context.prefix, message: `"${context.value}" is an invalid ${context.type}.` }); }; webidl.brandCheck = function(V, I, opts) { if (opts?.strict !== false) { if (!(V instanceof I)) { const err = new TypeError("Illegal invocation"); err.code = "ERR_INVALID_THIS"; throw err; } } else { if (V?.[Symbol.toStringTag] !== I.prototype[Symbol.toStringTag]) { const err = new TypeError("Illegal invocation"); err.code = "ERR_INVALID_THIS"; throw err; } } }; webidl.argumentLengthCheck = function({ length }, min, ctx) { if (length < min) { throw webidl.errors.exception({ message: `${min} argument${min !== 1 ? "s" : ""} required, but${length ? " only" : ""} ${length} found.`, header: ctx }); } }; webidl.illegalConstructor = function() { throw webidl.errors.exception({ header: "TypeError", message: "Illegal constructor" }); }; webidl.util.Type = function(V) { switch (typeof V) { 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": { if (V === null) { return "Null"; } return "Object"; } } }; webidl.util.markAsUncloneable = markAsUncloneable || (() => { }); webidl.util.ConvertToInt = function(V, bitLength, signedness, opts) { let upperBound; let lowerBound; if (bitLength === 64) { upperBound = Math.pow(2, 53) - 1; if (signedness === "unsigned") { lowerBound = 0; } else { lowerBound = Math.pow(-2, 53) + 1; } } else if (signedness === "unsigned") { lowerBound = 0; upperBound = Math.pow(2, bitLength) - 1; } else { lowerBound = Math.pow(-2, bitLength) - 1; upperBound = Math.pow(2, bitLength - 1) - 1; } let x = Number(V); if (x === 0) { x = 0; } if (opts?.enforceRange === true) { if (Number.isNaN(x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) { throw webidl.errors.exception({ header: "Integer conversion", message: `Could not convert ${webidl.util.Stringify(V)} to an integer.` }); } x = webidl.util.IntegerPart(x); if (x < lowerBound || x > upperBound) { throw webidl.errors.exception({ header: "Integer conversion", message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` }); } return x; } if (!Number.isNaN(x) && opts?.clamp === true) { x = Math.min(Math.max(x, lowerBound), upperBound); if (Math.floor(x) % 2 === 0) { x = Math.floor(x); } else { x = Math.ceil(x); } return x; } if (Number.isNaN(x) || x === 0 && Object.is(0, x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) { return 0; } x = webidl.util.IntegerPart(x); x = x % Math.pow(2, bitLength); if (signedness === "signed" && x >= Math.pow(2, bitLength) - 1) { return x - Math.pow(2, bitLength); } return x; }; webidl.util.IntegerPart = function(n) { const r = Math.floor(Math.abs(n)); if (n < 0) { return -1 * r; } return r; }; webidl.util.Stringify = function(V) { const type = webidl.util.Type(V); switch (type) { case "Symbol": return `Symbol(${V.description})`; case "Object": return inspect(V); case "String": return `"${V}"`; default: return `${V}`; } }; webidl.sequenceConverter = function(converter) { return (V, prefix, argument, Iterable) => { if (webidl.util.Type(V) !== "Object") { throw webidl.errors.exception({ header: prefix, message: `${argument} (${webidl.util.Stringify(V)}) is not iterable.` }); } const method = typeof Iterable === "function" ? Iterable() : V?.[Symbol.iterator]?.(); const seq = []; let index = 0; if (method === void 0 || typeof method.next !== "function") { throw webidl.errors.exception({ header: prefix, message: `${argument} is not iterable.` }); } while (true) { const { done, value } = method.next(); if (done) { break; } seq.push(converter(value, prefix, `${argument}[${index++}]`)); } return seq; }; }; webidl.recordConverter = function(keyConverter, valueConverter) { return (O, prefix, argument) => { if (webidl.util.Type(O) !== "Object") { throw webidl.errors.exception({ header: prefix, message: `${argument} ("${webidl.util.Type(O)}") is not an Object.` }); } const result = {}; if (!types.isProxy(O)) { const keys2 = [...Object.getOwnPropertyNames(O), ...Object.getOwnPropertySymbols(O)]; for (const key of keys2) { const typedKey = keyConverter(key, prefix, argument); const typedValue = valueConverter(O[key], prefix, argument); result[typedKey] = typedValue; } return result; } const keys = Reflect.ownKeys(O); for (const key of keys) { const desc = Reflect.getOwnPropertyDescriptor(O, key); if (desc?.enumerable) { const typedKey = keyConverter(key, prefix, argument); const typedValue = valueConverter(O[key], prefix, argument); result[typedKey] = typedValue; } } return result; }; }; webidl.interfaceConverter = function(i) { return (V, prefix, argument, opts) => { if (opts?.strict !== false && !(V instanceof i)) { throw webidl.errors.exception({ header: prefix, message: `Expected ${argument} ("${webidl.util.Stringify(V)}") to be an instance of ${i.name}.` }); } return V; }; }; webidl.dictionaryConverter = function(converters) { return (dictionary, prefix, argument) => { const type = webidl.util.Type(dictionary); const dict = {}; if (type === "Null" || type === "Undefined") { return dict; } else if (type !== "Object") { throw webidl.errors.exception({ header: prefix, message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` }); } for (const options of converters) { const { key, defaultValue, required, converter } = options; if (required === true) { if (!Object.hasOwn(dictionary, key)) { throw webidl.errors.exception({ header: prefix, message: `Missing required key "${key}".` }); } } let value = dictionary[key]; const hasDefault = Object.hasOwn(options, "defaultValue"); if (hasDefault && value !== null) { value ??= defaultValue(); } if (required || hasDefault || value !== void 0) { value = converter(value, prefix, `${argument}.${key}`); if (options.allowedValues && !options.allowedValues.includes(value)) { throw webidl.errors.exception({ header: prefix, message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.` }); } dict[key] = value; } } return dict; }; }; webidl.nullableConverter = function(converter) { return (V, prefix, argument) => { if (V === null) { return V; } return converter(V, prefix, argument); }; }; webidl.converters.DOMString = function(V, prefix, argument, opts) { if (V === null && opts?.legacyNullToEmptyString) { return ""; } if (typeof V === "symbol") { throw webidl.errors.exception({ header: prefix, message: `${argument} is a symbol, which cannot be converted to a DOMString.` }); } return String(V); }; webidl.converters.ByteString = function(V, prefix, argument) { const x = webidl.converters.DOMString(V, prefix, argument); for (let index = 0; index < x.length; index++) { if (x.charCodeAt(index) > 255) { throw new TypeError( `Cannot convert argument to a ByteString because the character at index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.` ); } } return x; }; webidl.converters.USVString = toUSVString; webidl.converters.boolean = function(V) { const x = Boolean(V); return x; }; webidl.converters.any = function(V) { return V; }; webidl.converters["long long"] = function(V, prefix, argument) { const x = webidl.util.ConvertToInt(V, 64, "signed", void 0, prefix, argument); return x; }; webidl.converters["unsigned long long"] = function(V, prefix, argument) { const x = webidl.util.ConvertToInt(V, 64, "unsigned", void 0, prefix, argument); return x; }; webidl.converters["unsigned long"] = function(V, prefix, argument) { const x = webidl.util.ConvertToInt(V, 32, "unsigned", void 0, prefix, argument); return x; }; webidl.converters["unsigned short"] = function(V, prefix, argument, opts) { const x = webidl.util.ConvertToInt(V, 16, "unsigned", opts, prefix, argument); return x; }; webidl.converters.ArrayBuffer = function(V, prefix, argument, opts) { if (webidl.util.Type(V) !== "Object" || !types.isAnyArrayBuffer(V)) { throw webidl.errors.conversionFailed({ prefix, argument: `${argument} ("${webidl.util.Stringify(V)}")`, types: ["ArrayBuffer"] }); } if (opts?.allowShared === false && types.isSharedArrayBuffer(V)) { throw webidl.errors.exception({ header: "ArrayBuffer", message: "SharedArrayBuffer is not allowed." }); } if (V.resizable || V.growable) { throw webidl.errors.exception({ header: "ArrayBuffer", message: "Received a resizable ArrayBuffer." }); } return V; }; webidl.converters.TypedArray = function(V, T, prefix, name, opts) { if (webidl.util.Type(V) !== "Object" || !types.isTypedArray(V) || V.constructor.name !== T.name) { throw webidl.errors.conversionFailed({ prefix, argument: `${name} ("${webidl.util.Stringify(V)}")`, types: [T.name] }); } if (opts?.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { throw webidl.errors.exception({ header: "ArrayBuffer", message: "SharedArrayBuffer is not allowed." }); } if (V.buffer.resizable || V.buffer.growable) { throw webidl.errors.exception({ header: "ArrayBuffer", message: "Received a resizable ArrayBuffer." }); } return V; }; webidl.converters.DataView = function(V, prefix, name, opts) { if (webidl.util.Type(V) !== "Object" || !types.isDataView(V)) { throw webidl.errors.exception({ header: prefix, message: `${name} is not a DataView.` }); } if (opts?.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { throw webidl.errors.exception({ header: "ArrayBuffer", message: "SharedArrayBuffer is not allowed." }); } if (V.buffer.resizable || V.buffer.growable) { throw webidl.errors.exception({ header: "ArrayBuffer", message: "Received a resizable ArrayBuffer." }); } return V; }; webidl.converters.BufferSource = function(V, prefix, name, opts) { if (types.isAnyArrayBuffer(V)) { return webidl.converters.ArrayBuffer(V, prefix, name, { ...opts, allowShared: false }); } if (types.isTypedArray(V)) { return webidl.converters.TypedArray(V, V.constructor, prefix, name, { ...opts, allowShared: false }); } if (types.isDataView(V)) { return webidl.converters.DataView(V, prefix, name, { ...opts, allowShared: false }); } throw webidl.errors.conversionFailed({ prefix, argument: `${name} ("${webidl.util.Stringify(V)}")`, types: ["BufferSource"] }); }; webidl.converters["sequence"] = webidl.sequenceConverter( webidl.converters.ByteString ); webidl.converters["sequence>"] = webidl.sequenceConverter( webidl.converters["sequence"] ); webidl.converters["record"] = webidl.recordConverter( webidl.converters.ByteString, webidl.converters.ByteString ); module2.exports = { webidl }; } }); // node_modules/undici/lib/web/fetch/util.js var require_util2 = __commonJS({ "node_modules/undici/lib/web/fetch/util.js"(exports2, module2) { "use strict"; var { Transform } = require("node:stream"); var zlib = require("node:zlib"); var { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require_constants3(); var { getGlobalOrigin } = require_global(); var { collectASequenceOfCodePoints, collectAnHTTPQuotedString, removeChars, parseMIMEType } = require_data_url(); var { performance: performance2 } = require("node:perf_hooks"); var { isBlobLike, ReadableStreamFrom, isValidHTTPToken, normalizedMethodRecordsBase } = require_util(); var assert = require("node:assert"); var { isUint8Array } = require("node:util/types"); var { webidl } = require_webidl(); var supportedHashes = []; var crypto3; try { crypto3 = require("node:crypto"); const possibleRelevantHashes = ["sha256", "sha384", "sha512"]; supportedHashes = crypto3.getHashes().filter((hash) => possibleRelevantHashes.includes(hash)); } catch { } function responseURL(response) { const urlList = response.urlList; const length = urlList.length; return length === 0 ? null : urlList[length - 1].toString(); } function responseLocationURL(response, requestFragment) { if (!redirectStatusSet.has(response.status)) { return null; } let location = response.headersList.get("location", true); if (location !== null && isValidHeaderValue(location)) { if (!isValidEncodedURL(location)) { location = normalizeBinaryStringToUtf8(location); } location = new URL(location, responseURL(response)); } if (location && !location.hash) { location.hash = requestFragment; } return location; } function isValidEncodedURL(url) { for (let i = 0; i < url.length; ++i) { const code = url.charCodeAt(i); if (code > 126 || // Non-US-ASCII + DEL code < 32) { return false; } } return true; } function normalizeBinaryStringToUtf8(value) { return Buffer.from(value, "binary").toString("utf8"); } function requestCurrentURL(request2) { return request2.urlList[request2.urlList.length - 1]; } function requestBadPort(request2) { const url = requestCurrentURL(request2); if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) { return "blocked"; } return "allowed"; } function isErrorLike(object) { return object instanceof Error || (object?.constructor?.name === "Error" || object?.constructor?.name === "DOMException"); } function isValidReasonPhrase(statusText) { for (let i = 0; i < statusText.length; ++i) { const c = statusText.charCodeAt(i); if (!(c === 9 || // HTAB c >= 32 && c <= 126 || // SP / VCHAR c >= 128 && c <= 255)) { return false; } } return true; } var isValidHeaderName = isValidHTTPToken; function isValidHeaderValue(potentialValue) { return (potentialValue[0] === " " || potentialValue[0] === " " || potentialValue[potentialValue.length - 1] === " " || potentialValue[potentialValue.length - 1] === " " || potentialValue.includes("\n") || potentialValue.includes("\r") || potentialValue.includes("\0")) === false; } function setRequestReferrerPolicyOnRedirect(request2, actualResponse) { const { headersList } = actualResponse; const policyHeader = (headersList.get("referrer-policy", true) ?? "").split(","); let policy = ""; if (policyHeader.length > 0) { for (let i = policyHeader.length; i !== 0; i--) { const token = policyHeader[i - 1].trim(); if (referrerPolicyTokens.has(token)) { policy = token; break; } } } if (policy !== "") { request2.referrerPolicy = policy; } } function crossOriginResourcePolicyCheck() { return "allowed"; } function corsCheck() { return "success"; } function TAOCheck() { return "success"; } function appendFetchMetadata(httpRequest) { let header = null; header = httpRequest.mode; httpRequest.headersList.set("sec-fetch-mode", header, true); } function appendRequestOriginHeader(request2) { let serializedOrigin = request2.origin; if (serializedOrigin === "client" || serializedOrigin === void 0) { return; } if (request2.responseTainting === "cors" || request2.mode === "websocket") { request2.headersList.append("origin", serializedOrigin, true); } else if (request2.method !== "GET" && request2.method !== "HEAD") { switch (request2.referrerPolicy) { case "no-referrer": serializedOrigin = null; break; case "no-referrer-when-downgrade": case "strict-origin": case "strict-origin-when-cross-origin": if (request2.origin && urlHasHttpsScheme(request2.origin) && !urlHasHttpsScheme(requestCurrentURL(request2))) { serializedOrigin = null; } break; case "same-origin": if (!sameOrigin(request2, requestCurrentURL(request2))) { serializedOrigin = null; } break; default: } request2.headersList.append("origin", serializedOrigin, true); } } function coarsenTime(timestamp, crossOriginIsolatedCapability) { return timestamp; } function clampAndCoarsenConnectionTimingInfo(connectionTimingInfo, defaultStartTime, crossOriginIsolatedCapability) { if (!connectionTimingInfo?.startTime || connectionTimingInfo.startTime < defaultStartTime) { return { domainLookupStartTime: defaultStartTime, domainLookupEndTime: defaultStartTime, connectionStartTime: defaultStartTime, connectionEndTime: defaultStartTime, secureConnectionStartTime: defaultStartTime, ALPNNegotiatedProtocol: connectionTimingInfo?.ALPNNegotiatedProtocol }; } return { domainLookupStartTime: coarsenTime(connectionTimingInfo.domainLookupStartTime, crossOriginIsolatedCapability), domainLookupEndTime: coarsenTime(connectionTimingInfo.domainLookupEndTime, crossOriginIsolatedCapability), connectionStartTime: coarsenTime(connectionTimingInfo.connectionStartTime, crossOriginIsolatedCapability), connectionEndTime: coarsenTime(connectionTimingInfo.connectionEndTime, crossOriginIsolatedCapability), secureConnectionStartTime: coarsenTime(connectionTimingInfo.secureConnectionStartTime, crossOriginIsolatedCapability), ALPNNegotiatedProtocol: connectionTimingInfo.ALPNNegotiatedProtocol }; } function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { return coarsenTime(performance2.now(), crossOriginIsolatedCapability); } function createOpaqueTimingInfo(timingInfo) { return { startTime: timingInfo.startTime ?? 0, redirectStartTime: 0, redirectEndTime: 0, postRedirectStartTime: timingInfo.startTime ?? 0, finalServiceWorkerStartTime: 0, finalNetworkResponseStartTime: 0, finalNetworkRequestStartTime: 0, endTime: 0, encodedBodySize: 0, decodedBodySize: 0, finalConnectionTimingInfo: null }; } function makePolicyContainer() { return { referrerPolicy: "strict-origin-when-cross-origin" }; } function clonePolicyContainer(policyContainer) { return { referrerPolicy: policyContainer.referrerPolicy }; } function determineRequestsReferrer(request2) { const policy = request2.referrerPolicy; assert(policy); let referrerSource = null; if (request2.referrer === "client") { const globalOrigin = getGlobalOrigin(); if (!globalOrigin || globalOrigin.origin === "null") { return "no-referrer"; } referrerSource = new URL(globalOrigin); } else if (request2.referrer instanceof URL) { referrerSource = request2.referrer; } let referrerURL = stripURLForReferrer(referrerSource); const referrerOrigin = stripURLForReferrer(referrerSource, true); if (referrerURL.toString().length > 4096) { referrerURL = referrerOrigin; } const areSameOrigin = sameOrigin(request2, referrerURL); const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(request2.url); switch (policy) { case "origin": return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true); case "unsafe-url": return referrerURL; case "same-origin": return areSameOrigin ? referrerOrigin : "no-referrer"; case "origin-when-cross-origin": return areSameOrigin ? referrerURL : referrerOrigin; case "strict-origin-when-cross-origin": { const currentURL = requestCurrentURL(request2); if (sameOrigin(referrerURL, currentURL)) { return referrerURL; } if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { return "no-referrer"; } return referrerOrigin; } case "strict-origin": // eslint-disable-line /** * 1. If referrerURL is a potentially trustworthy URL and * request’s current URL is not a potentially trustworthy URL, * then return no referrer. * 2. Return referrerOrigin */ case "no-referrer-when-downgrade": // eslint-disable-line /** * 1. If referrerURL is a potentially trustworthy URL and * request’s current URL is not a potentially trustworthy URL, * then return no referrer. * 2. Return referrerOrigin */ default: return isNonPotentiallyTrustWorthy ? "no-referrer" : referrerOrigin; } } function stripURLForReferrer(url, originOnly) { assert(url instanceof URL); url = new URL(url); if (url.protocol === "file:" || url.protocol === "about:" || url.protocol === "blank:") { return "no-referrer"; } url.username = ""; url.password = ""; url.hash = ""; if (originOnly) { url.pathname = ""; url.search = ""; } return url; } function isURLPotentiallyTrustworthy(url) { if (!(url instanceof URL)) { return false; } if (url.href === "about:blank" || url.href === "about:srcdoc") { return true; } if (url.protocol === "data:") return true; if (url.protocol === "file:") return true; return isOriginPotentiallyTrustworthy(url.origin); function isOriginPotentiallyTrustworthy(origin) { if (origin == null || origin === "null") return false; const originAsURL = new URL(origin); if (originAsURL.protocol === "https:" || originAsURL.protocol === "wss:") { return true; } if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) || (originAsURL.hostname === "localhost" || originAsURL.hostname.includes("localhost.")) || originAsURL.hostname.endsWith(".localhost")) { return true; } return false; } } function bytesMatch(bytes, metadataList) { if (crypto3 === void 0) { return true; } const parsedMetadata = parseMetadata(metadataList); if (parsedMetadata === "no metadata") { return true; } if (parsedMetadata.length === 0) { return true; } const strongest = getStrongestMetadata(parsedMetadata); const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest); for (const item of metadata) { const algorithm = item.algo; const expectedValue = item.hash; let actualValue = crypto3.createHash(algorithm).update(bytes).digest("base64"); if (actualValue[actualValue.length - 1] === "=") { if (actualValue[actualValue.length - 2] === "=") { actualValue = actualValue.slice(0, -2); } else { actualValue = actualValue.slice(0, -1); } } if (compareBase64Mixed(actualValue, expectedValue)) { return true; } } return false; } var parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i; function parseMetadata(metadata) { const result = []; let empty = true; for (const token of metadata.split(" ")) { empty = false; const parsedToken = parseHashWithOptions.exec(token); if (parsedToken === null || parsedToken.groups === void 0 || parsedToken.groups.algo === void 0) { continue; } const algorithm = parsedToken.groups.algo.toLowerCase(); if (supportedHashes.includes(algorithm)) { result.push(parsedToken.groups); } } if (empty === true) { return "no metadata"; } return result; } function getStrongestMetadata(metadataList) { let algorithm = metadataList[0].algo; if (algorithm[3] === "5") { return algorithm; } for (let i = 1; i < metadataList.length; ++i) { const metadata = metadataList[i]; if (metadata.algo[3] === "5") { algorithm = "sha512"; break; } else if (algorithm[3] === "3") { continue; } else if (metadata.algo[3] === "3") { algorithm = "sha384"; } } return algorithm; } function filterMetadataListByAlgorithm(metadataList, algorithm) { if (metadataList.length === 1) { return metadataList; } let pos = 0; for (let i = 0; i < metadataList.length; ++i) { if (metadataList[i].algo === algorithm) { metadataList[pos++] = metadataList[i]; } } metadataList.length = pos; return metadataList; } function compareBase64Mixed(actualValue, expectedValue) { if (actualValue.length !== expectedValue.length) { return false; } for (let i = 0; i < actualValue.length; ++i) { if (actualValue[i] !== expectedValue[i]) { if (actualValue[i] === "+" && expectedValue[i] === "-" || actualValue[i] === "/" && expectedValue[i] === "_") { continue; } return false; } } return true; } function tryUpgradeRequestToAPotentiallyTrustworthyURL(request2) { } function sameOrigin(A, B) { if (A.origin === B.origin && A.origin === "null") { return true; } if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) { return true; } return false; } function createDeferredPromise() { let res; let rej; const promise = new Promise((resolve, reject) => { res = resolve; rej = reject; }); return { promise, resolve: res, reject: rej }; } function isAborted(fetchParams) { return fetchParams.controller.state === "aborted"; } function isCancelled(fetchParams) { return fetchParams.controller.state === "aborted" || fetchParams.controller.state === "terminated"; } function normalizeMethod(method) { return normalizedMethodRecordsBase[method.toLowerCase()] ?? method; } function serializeJavascriptValueToJSONString(value) { const result = JSON.stringify(value); if (result === void 0) { throw new TypeError("Value is not JSON serializable"); } assert(typeof result === "string"); return result; } var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); function createIterator(name, kInternalIterator, keyIndex = 0, valueIndex = 1) { class FastIterableIterator { /** @type {any} */ #target; /** @type {'key' | 'value' | 'key+value'} */ #kind; /** @type {number} */ #index; /** * @see https://webidl.spec.whatwg.org/#dfn-default-iterator-object * @param {unknown} target * @param {'key' | 'value' | 'key+value'} kind */ constructor(target, kind) { this.#target = target; this.#kind = kind; this.#index = 0; } next() { if (typeof this !== "object" || this === null || !(#target in this)) { throw new TypeError( `'next' called on an object that does not implement interface ${name} Iterator.` ); } const index = this.#index; const values = this.#target[kInternalIterator]; const len = values.length; if (index >= len) { return { value: void 0, done: true }; } const { [keyIndex]: key, [valueIndex]: value } = values[index]; this.#index = index + 1; let result; switch (this.#kind) { case "key": result = key; break; case "value": result = value; break; case "key+value": result = [key, value]; break; } return { value: result, done: false }; } } delete FastIterableIterator.prototype.constructor; Object.setPrototypeOf(FastIterableIterator.prototype, esIteratorPrototype); Object.defineProperties(FastIterableIterator.prototype, { [Symbol.toStringTag]: { writable: false, enumerable: false, configurable: true, value: `${name} Iterator` }, next: { writable: true, enumerable: true, configurable: true } }); return function(target, kind) { return new FastIterableIterator(target, kind); }; } function iteratorMixin(name, object, kInternalIterator, keyIndex = 0, valueIndex = 1) { const makeIterator = createIterator(name, kInternalIterator, keyIndex, valueIndex); const properties = { keys: { writable: true, enumerable: true, configurable: true, value: function keys() { webidl.brandCheck(this, object); return makeIterator(this, "key"); } }, values: { writable: true, enumerable: true, configurable: true, value: function values() { webidl.brandCheck(this, object); return makeIterator(this, "value"); } }, entries: { writable: true, enumerable: true, configurable: true, value: function entries() { webidl.brandCheck(this, object); return makeIterator(this, "key+value"); } }, forEach: { writable: true, enumerable: true, configurable: true, value: function forEach(callbackfn, thisArg = globalThis) { webidl.brandCheck(this, object); webidl.argumentLengthCheck(arguments, 1, `${name}.forEach`); if (typeof callbackfn !== "function") { throw new TypeError( `Failed to execute 'forEach' on '${name}': parameter 1 is not of type 'Function'.` ); } for (const { 0: key, 1: value } of makeIterator(this, "key+value")) { callbackfn.call(thisArg, value, key, this); } } } }; return Object.defineProperties(object.prototype, { ...properties, [Symbol.iterator]: { writable: true, enumerable: false, configurable: true, value: properties.entries.value } }); } async function fullyReadBody(body, processBody, processBodyError) { const successSteps = processBody; const errorSteps = processBodyError; let reader; try { reader = body.stream.getReader(); } catch (e) { errorSteps(e); return; } try { successSteps(await readAllBytes(reader)); } catch (e) { errorSteps(e); } } function isReadableStreamLike(stream2) { return stream2 instanceof ReadableStream || stream2[Symbol.toStringTag] === "ReadableStream" && typeof stream2.tee === "function"; } function readableStreamClose(controller) { try { controller.close(); controller.byobRequest?.respond(0); } catch (err) { if (!err.message.includes("Controller is already closed") && !err.message.includes("ReadableStream is already closed")) { throw err; } } } var invalidIsomorphicEncodeValueRegex = /[^\x00-\xFF]/; function isomorphicEncode(input) { assert(!invalidIsomorphicEncodeValueRegex.test(input)); return input; } async function readAllBytes(reader) { const bytes = []; let byteLength = 0; while (true) { const { done, value: chunk } = await reader.read(); if (done) { return Buffer.concat(bytes, byteLength); } if (!isUint8Array(chunk)) { throw new TypeError("Received non-Uint8Array chunk"); } bytes.push(chunk); byteLength += chunk.length; } } function urlIsLocal(url) { assert("protocol" in url); const protocol = url.protocol; return protocol === "about:" || protocol === "blob:" || protocol === "data:"; } function urlHasHttpsScheme(url) { return typeof url === "string" && url[5] === ":" && url[0] === "h" && url[1] === "t" && url[2] === "t" && url[3] === "p" && url[4] === "s" || url.protocol === "https:"; } function urlIsHttpHttpsScheme(url) { assert("protocol" in url); const protocol = url.protocol; return protocol === "http:" || protocol === "https:"; } function simpleRangeHeaderValue(value, allowWhitespace) { const data = value; if (!data.startsWith("bytes")) { return "failure"; } const position = { position: 5 }; if (allowWhitespace) { collectASequenceOfCodePoints( (char) => char === " " || char === " ", data, position ); } if (data.charCodeAt(position.position) !== 61) { return "failure"; } position.position++; if (allowWhitespace) { collectASequenceOfCodePoints( (char) => char === " " || char === " ", data, position ); } const rangeStart = collectASequenceOfCodePoints( (char) => { const code = char.charCodeAt(0); return code >= 48 && code <= 57; }, data, position ); const rangeStartValue = rangeStart.length ? Number(rangeStart) : null; if (allowWhitespace) { collectASequenceOfCodePoints( (char) => char === " " || char === " ", data, position ); } if (data.charCodeAt(position.position) !== 45) { return "failure"; } position.position++; if (allowWhitespace) { collectASequenceOfCodePoints( (char) => char === " " || char === " ", data, position ); } const rangeEnd = collectASequenceOfCodePoints( (char) => { const code = char.charCodeAt(0); return code >= 48 && code <= 57; }, data, position ); const rangeEndValue = rangeEnd.length ? Number(rangeEnd) : null; if (position.position < data.length) { return "failure"; } if (rangeEndValue === null && rangeStartValue === null) { return "failure"; } if (rangeStartValue > rangeEndValue) { return "failure"; } return { rangeStartValue, rangeEndValue }; } function buildContentRange(rangeStart, rangeEnd, fullLength) { let contentRange = "bytes "; contentRange += isomorphicEncode(`${rangeStart}`); contentRange += "-"; contentRange += isomorphicEncode(`${rangeEnd}`); contentRange += "/"; contentRange += isomorphicEncode(`${fullLength}`); return contentRange; } var InflateStream = class extends Transform { #zlibOptions; /** @param {zlib.ZlibOptions} [zlibOptions] */ constructor(zlibOptions) { super(); this.#zlibOptions = zlibOptions; } _transform(chunk, encoding, callback) { if (!this._inflateStream) { if (chunk.length === 0) { callback(); return; } this._inflateStream = (chunk[0] & 15) === 8 ? zlib.createInflate(this.#zlibOptions) : zlib.createInflateRaw(this.#zlibOptions); this._inflateStream.on("data", this.push.bind(this)); this._inflateStream.on("end", () => this.push(null)); this._inflateStream.on("error", (err) => this.destroy(err)); } this._inflateStream.write(chunk, encoding, callback); } _final(callback) { if (this._inflateStream) { this._inflateStream.end(); this._inflateStream = null; } callback(); } }; function createInflate(zlibOptions) { return new InflateStream(zlibOptions); } function extractMimeType(headers) { let charset = null; let essence = null; let mimeType = null; const values = getDecodeSplit("content-type", headers); if (values === null) { return "failure"; } for (const value of values) { const temporaryMimeType = parseMIMEType(value); if (temporaryMimeType === "failure" || temporaryMimeType.essence === "*/*") { continue; } mimeType = temporaryMimeType; if (mimeType.essence !== essence) { charset = null; if (mimeType.parameters.has("charset")) { charset = mimeType.parameters.get("charset"); } essence = mimeType.essence; } else if (!mimeType.parameters.has("charset") && charset !== null) { mimeType.parameters.set("charset", charset); } } if (mimeType == null) { return "failure"; } return mimeType; } function gettingDecodingSplitting(value) { const input = value; const position = { position: 0 }; const values = []; let temporaryValue = ""; while (position.position < input.length) { temporaryValue += collectASequenceOfCodePoints( (char) => char !== '"' && char !== ",", input, position ); if (position.position < input.length) { if (input.charCodeAt(position.position) === 34) { temporaryValue += collectAnHTTPQuotedString( input, position ); if (position.position < input.length) { continue; } } else { assert(input.charCodeAt(position.position) === 44); position.position++; } } temporaryValue = removeChars(temporaryValue, true, true, (char) => char === 9 || char === 32); values.push(temporaryValue); temporaryValue = ""; } return values; } function getDecodeSplit(name, list) { const value = list.get(name, true); if (value === null) { return null; } return gettingDecodingSplitting(value); } var textDecoder = new TextDecoder(); function utf8DecodeBytes(buffer) { if (buffer.length === 0) { return ""; } if (buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191) { buffer = buffer.subarray(3); } const output = textDecoder.decode(buffer); return output; } var EnvironmentSettingsObjectBase = class { get baseUrl() { return getGlobalOrigin(); } get origin() { return this.baseUrl?.origin; } policyContainer = makePolicyContainer(); }; var EnvironmentSettingsObject = class { settingsObject = new EnvironmentSettingsObjectBase(); }; var environmentSettingsObject = new EnvironmentSettingsObject(); module2.exports = { isAborted, isCancelled, isValidEncodedURL, createDeferredPromise, ReadableStreamFrom, tryUpgradeRequestToAPotentiallyTrustworthyURL, clampAndCoarsenConnectionTimingInfo, coarsenedSharedCurrentTime, determineRequestsReferrer, makePolicyContainer, clonePolicyContainer, appendFetchMetadata, appendRequestOriginHeader, TAOCheck, corsCheck, crossOriginResourcePolicyCheck, createOpaqueTimingInfo, setRequestReferrerPolicyOnRedirect, isValidHTTPToken, requestBadPort, requestCurrentURL, responseURL, responseLocationURL, isBlobLike, isURLPotentiallyTrustworthy, isValidReasonPhrase, sameOrigin, normalizeMethod, serializeJavascriptValueToJSONString, iteratorMixin, createIterator, isValidHeaderName, isValidHeaderValue, isErrorLike, fullyReadBody, bytesMatch, isReadableStreamLike, readableStreamClose, isomorphicEncode, urlIsLocal, urlHasHttpsScheme, urlIsHttpHttpsScheme, readAllBytes, simpleRangeHeaderValue, buildContentRange, parseMetadata, createInflate, extractMimeType, getDecodeSplit, utf8DecodeBytes, environmentSettingsObject }; } }); // node_modules/undici/lib/web/fetch/symbols.js var require_symbols2 = __commonJS({ "node_modules/undici/lib/web/fetch/symbols.js"(exports2, module2) { "use strict"; module2.exports = { kUrl: /* @__PURE__ */ Symbol("url"), kHeaders: /* @__PURE__ */ Symbol("headers"), kSignal: /* @__PURE__ */ Symbol("signal"), kState: /* @__PURE__ */ Symbol("state"), kDispatcher: /* @__PURE__ */ Symbol("dispatcher") }; } }); // node_modules/undici/lib/web/fetch/file.js var require_file = __commonJS({ "node_modules/undici/lib/web/fetch/file.js"(exports2, module2) { "use strict"; var { Blob: Blob2, File } = require("node:buffer"); var { kState } = require_symbols2(); var { webidl } = require_webidl(); var FileLike = class _FileLike { constructor(blobLike, fileName, options = {}) { const n = fileName; const t = options.type; const d = options.lastModified ?? Date.now(); this[kState] = { blobLike, name: n, type: t, lastModified: d }; } stream(...args) { webidl.brandCheck(this, _FileLike); return this[kState].blobLike.stream(...args); } arrayBuffer(...args) { webidl.brandCheck(this, _FileLike); return this[kState].blobLike.arrayBuffer(...args); } slice(...args) { webidl.brandCheck(this, _FileLike); return this[kState].blobLike.slice(...args); } text(...args) { webidl.brandCheck(this, _FileLike); return this[kState].blobLike.text(...args); } get size() { webidl.brandCheck(this, _FileLike); return this[kState].blobLike.size; } get type() { webidl.brandCheck(this, _FileLike); return this[kState].blobLike.type; } get name() { webidl.brandCheck(this, _FileLike); return this[kState].name; } get lastModified() { webidl.brandCheck(this, _FileLike); return this[kState].lastModified; } get [Symbol.toStringTag]() { return "File"; } }; webidl.converters.Blob = webidl.interfaceConverter(Blob2); function isFileLike(object) { return object instanceof File || object && (typeof object.stream === "function" || typeof object.arrayBuffer === "function") && object[Symbol.toStringTag] === "File"; } module2.exports = { FileLike, isFileLike }; } }); // node_modules/undici/lib/web/fetch/formdata.js var require_formdata = __commonJS({ "node_modules/undici/lib/web/fetch/formdata.js"(exports2, module2) { "use strict"; var { isBlobLike, iteratorMixin } = require_util2(); var { kState } = require_symbols2(); var { kEnumerableProperty } = require_util(); var { FileLike, isFileLike } = require_file(); var { webidl } = require_webidl(); var { File: NativeFile } = require("node:buffer"); var nodeUtil = require("node:util"); var File = globalThis.File ?? NativeFile; var FormData = class _FormData { constructor(form) { webidl.util.markAsUncloneable(this); if (form !== void 0) { throw webidl.errors.conversionFailed({ prefix: "FormData constructor", argument: "Argument 1", types: ["undefined"] }); } this[kState] = []; } append(name, value, filename = void 0) { webidl.brandCheck(this, _FormData); const prefix = "FormData.append"; webidl.argumentLengthCheck(arguments, 2, prefix); if (arguments.length === 3 && !isBlobLike(value)) { throw new TypeError( "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" ); } name = webidl.converters.USVString(name, prefix, "name"); value = isBlobLike(value) ? webidl.converters.Blob(value, prefix, "value", { strict: false }) : webidl.converters.USVString(value, prefix, "value"); filename = arguments.length === 3 ? webidl.converters.USVString(filename, prefix, "filename") : void 0; const entry = makeEntry(name, value, filename); this[kState].push(entry); } delete(name) { webidl.brandCheck(this, _FormData); const prefix = "FormData.delete"; webidl.argumentLengthCheck(arguments, 1, prefix); name = webidl.converters.USVString(name, prefix, "name"); this[kState] = this[kState].filter((entry) => entry.name !== name); } get(name) { webidl.brandCheck(this, _FormData); const prefix = "FormData.get"; webidl.argumentLengthCheck(arguments, 1, prefix); name = webidl.converters.USVString(name, prefix, "name"); const idx = this[kState].findIndex((entry) => entry.name === name); if (idx === -1) { return null; } return this[kState][idx].value; } getAll(name) { webidl.brandCheck(this, _FormData); const prefix = "FormData.getAll"; webidl.argumentLengthCheck(arguments, 1, prefix); name = webidl.converters.USVString(name, prefix, "name"); return this[kState].filter((entry) => entry.name === name).map((entry) => entry.value); } has(name) { webidl.brandCheck(this, _FormData); const prefix = "FormData.has"; webidl.argumentLengthCheck(arguments, 1, prefix); name = webidl.converters.USVString(name, prefix, "name"); return this[kState].findIndex((entry) => entry.name === name) !== -1; } set(name, value, filename = void 0) { webidl.brandCheck(this, _FormData); const prefix = "FormData.set"; webidl.argumentLengthCheck(arguments, 2, prefix); if (arguments.length === 3 && !isBlobLike(value)) { throw new TypeError( "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" ); } name = webidl.converters.USVString(name, prefix, "name"); value = isBlobLike(value) ? webidl.converters.Blob(value, prefix, "name", { strict: false }) : webidl.converters.USVString(value, prefix, "name"); filename = arguments.length === 3 ? webidl.converters.USVString(filename, prefix, "name") : void 0; const entry = makeEntry(name, value, filename); const idx = this[kState].findIndex((entry2) => entry2.name === name); if (idx !== -1) { this[kState] = [ ...this[kState].slice(0, idx), entry, ...this[kState].slice(idx + 1).filter((entry2) => entry2.name !== name) ]; } else { this[kState].push(entry); } } [nodeUtil.inspect.custom](depth, options) { const state = this[kState].reduce((a, b) => { if (a[b.name]) { if (Array.isArray(a[b.name])) { a[b.name].push(b.value); } else { a[b.name] = [a[b.name], b.value]; } } else { a[b.name] = b.value; } return a; }, { __proto__: null }); options.depth ??= depth; options.colors ??= true; const output = nodeUtil.formatWithOptions(options, state); return `FormData ${output.slice(output.indexOf("]") + 2)}`; } }; iteratorMixin("FormData", FormData, kState, "name", "value"); Object.defineProperties(FormData.prototype, { append: kEnumerableProperty, delete: kEnumerableProperty, get: kEnumerableProperty, getAll: kEnumerableProperty, has: kEnumerableProperty, set: kEnumerableProperty, [Symbol.toStringTag]: { value: "FormData", configurable: true } }); function makeEntry(name, value, filename) { if (typeof value === "string") { } else { if (!isFileLike(value)) { value = value instanceof Blob ? new File([value], "blob", { type: value.type }) : new FileLike(value, "blob", { type: value.type }); } if (filename !== void 0) { const options = { type: value.type, lastModified: value.lastModified }; value = value instanceof NativeFile ? new File([value], filename, options) : new FileLike(value, filename, options); } } return { name, value }; } module2.exports = { FormData, makeEntry }; } }); // node_modules/undici/lib/web/fetch/formdata-parser.js var require_formdata_parser = __commonJS({ "node_modules/undici/lib/web/fetch/formdata-parser.js"(exports2, module2) { "use strict"; var { isUSVString, bufferToLowerCasedHeaderName } = require_util(); var { utf8DecodeBytes } = require_util2(); var { HTTP_TOKEN_CODEPOINTS, isomorphicDecode } = require_data_url(); var { isFileLike } = require_file(); var { makeEntry } = require_formdata(); var assert = require("node:assert"); var { File: NodeFile } = require("node:buffer"); var File = globalThis.File ?? NodeFile; var formDataNameBuffer = Buffer.from('form-data; name="'); var filenameBuffer = Buffer.from("; filename"); var dd = Buffer.from("--"); var ddcrlf = Buffer.from("--\r\n"); function isAsciiString(chars) { for (let i = 0; i < chars.length; ++i) { if ((chars.charCodeAt(i) & ~127) !== 0) { return false; } } return true; } function validateBoundary(boundary) { const length = boundary.length; if (length < 27 || length > 70) { return false; } for (let i = 0; i < length; ++i) { const cp2 = boundary.charCodeAt(i); if (!(cp2 >= 48 && cp2 <= 57 || cp2 >= 65 && cp2 <= 90 || cp2 >= 97 && cp2 <= 122 || cp2 === 39 || cp2 === 45 || cp2 === 95)) { return false; } } return true; } function multipartFormDataParser(input, mimeType) { assert(mimeType !== "failure" && mimeType.essence === "multipart/form-data"); const boundaryString = mimeType.parameters.get("boundary"); if (boundaryString === void 0) { return "failure"; } const boundary = Buffer.from(`--${boundaryString}`, "utf8"); const entryList = []; const position = { position: 0 }; while (input[position.position] === 13 && input[position.position + 1] === 10) { position.position += 2; } let trailing = input.length; while (input[trailing - 1] === 10 && input[trailing - 2] === 13) { trailing -= 2; } if (trailing !== input.length) { input = input.subarray(0, trailing); } while (true) { if (input.subarray(position.position, position.position + boundary.length).equals(boundary)) { position.position += boundary.length; } else { return "failure"; } if (position.position === input.length - 2 && bufferStartsWith(input, dd, position) || position.position === input.length - 4 && bufferStartsWith(input, ddcrlf, position)) { return entryList; } if (input[position.position] !== 13 || input[position.position + 1] !== 10) { return "failure"; } position.position += 2; const result = parseMultipartFormDataHeaders(input, position); if (result === "failure") { return "failure"; } let { name, filename, contentType, encoding } = result; position.position += 2; let body; { const boundaryIndex = input.indexOf(boundary.subarray(2), position.position); if (boundaryIndex === -1) { return "failure"; } body = input.subarray(position.position, boundaryIndex - 4); position.position += body.length; if (encoding === "base64") { body = Buffer.from(body.toString(), "base64"); } } if (input[position.position] !== 13 || input[position.position + 1] !== 10) { return "failure"; } else { position.position += 2; } let value; if (filename !== null) { contentType ??= "text/plain"; if (!isAsciiString(contentType)) { contentType = ""; } value = new File([body], filename, { type: contentType }); } else { value = utf8DecodeBytes(Buffer.from(body)); } assert(isUSVString(name)); assert(typeof value === "string" && isUSVString(value) || isFileLike(value)); entryList.push(makeEntry(name, value, filename)); } } function parseMultipartFormDataHeaders(input, position) { let name = null; let filename = null; let contentType = null; let encoding = null; while (true) { if (input[position.position] === 13 && input[position.position + 1] === 10) { if (name === null) { return "failure"; } return { name, filename, contentType, encoding }; } let headerName = collectASequenceOfBytes( (char) => char !== 10 && char !== 13 && char !== 58, input, position ); headerName = removeChars(headerName, true, true, (char) => char === 9 || char === 32); if (!HTTP_TOKEN_CODEPOINTS.test(headerName.toString())) { return "failure"; } if (input[position.position] !== 58) { return "failure"; } position.position++; collectASequenceOfBytes( (char) => char === 32 || char === 9, input, position ); switch (bufferToLowerCasedHeaderName(headerName)) { case "content-disposition": { name = filename = null; if (!bufferStartsWith(input, formDataNameBuffer, position)) { return "failure"; } position.position += 17; name = parseMultipartFormDataName(input, position); if (name === null) { return "failure"; } if (bufferStartsWith(input, filenameBuffer, position)) { let check = position.position + filenameBuffer.length; if (input[check] === 42) { position.position += 1; check += 1; } if (input[check] !== 61 || input[check + 1] !== 34) { return "failure"; } position.position += 12; filename = parseMultipartFormDataName(input, position); if (filename === null) { return "failure"; } } break; } case "content-type": { let headerValue = collectASequenceOfBytes( (char) => char !== 10 && char !== 13, input, position ); headerValue = removeChars(headerValue, false, true, (char) => char === 9 || char === 32); contentType = isomorphicDecode(headerValue); break; } case "content-transfer-encoding": { let headerValue = collectASequenceOfBytes( (char) => char !== 10 && char !== 13, input, position ); headerValue = removeChars(headerValue, false, true, (char) => char === 9 || char === 32); encoding = isomorphicDecode(headerValue); break; } default: { collectASequenceOfBytes( (char) => char !== 10 && char !== 13, input, position ); } } if (input[position.position] !== 13 && input[position.position + 1] !== 10) { return "failure"; } else { position.position += 2; } } } function parseMultipartFormDataName(input, position) { assert(input[position.position - 1] === 34); let name = collectASequenceOfBytes( (char) => char !== 10 && char !== 13 && char !== 34, input, position ); if (input[position.position] !== 34) { return null; } else { position.position++; } name = new TextDecoder().decode(name).replace(/%0A/ig, "\n").replace(/%0D/ig, "\r").replace(/%22/g, '"'); return name; } function collectASequenceOfBytes(condition, input, position) { let start = position.position; while (start < input.length && condition(input[start])) { ++start; } return input.subarray(position.position, position.position = start); } function removeChars(buf, leading, trailing, predicate) { let lead = 0; let trail = buf.length - 1; if (leading) { while (lead < buf.length && predicate(buf[lead])) lead++; } if (trailing) { while (trail > 0 && predicate(buf[trail])) trail--; } return lead === 0 && trail === buf.length - 1 ? buf : buf.subarray(lead, trail + 1); } function bufferStartsWith(buffer, start, position) { if (buffer.length < start.length) { return false; } for (let i = 0; i < start.length; i++) { if (start[i] !== buffer[position.position + i]) { return false; } } return true; } module2.exports = { multipartFormDataParser, validateBoundary }; } }); // node_modules/undici/lib/web/fetch/body.js var require_body = __commonJS({ "node_modules/undici/lib/web/fetch/body.js"(exports2, module2) { "use strict"; var util2 = require_util(); var { ReadableStreamFrom, isBlobLike, isReadableStreamLike, readableStreamClose, createDeferredPromise, fullyReadBody, extractMimeType, utf8DecodeBytes } = require_util2(); var { FormData } = require_formdata(); var { kState } = require_symbols2(); var { webidl } = require_webidl(); var { Blob: Blob2 } = require("node:buffer"); var assert = require("node:assert"); var { isErrored, isDisturbed } = require("node:stream"); var { isArrayBuffer } = require("node:util/types"); var { serializeAMimeType } = require_data_url(); var { multipartFormDataParser } = require_formdata_parser(); var random; try { const crypto3 = require("node:crypto"); random = (max) => crypto3.randomInt(0, max); } catch { random = (max) => Math.floor(Math.random(max)); } var textEncoder = new TextEncoder(); function noop2() { } var hasFinalizationRegistry = globalThis.FinalizationRegistry && process.version.indexOf("v18") !== 0; var streamRegistry; if (hasFinalizationRegistry) { streamRegistry = new FinalizationRegistry((weakRef) => { const stream2 = weakRef.deref(); if (stream2 && !stream2.locked && !isDisturbed(stream2) && !isErrored(stream2)) { stream2.cancel("Response object has been garbage collected").catch(noop2); } }); } function extractBody(object, keepalive = false) { let stream2 = null; if (object instanceof ReadableStream) { stream2 = object; } else if (isBlobLike(object)) { stream2 = object.stream(); } else { stream2 = new ReadableStream({ async pull(controller) { const buffer = typeof source === "string" ? textEncoder.encode(source) : source; if (buffer.byteLength) { controller.enqueue(buffer); } queueMicrotask(() => readableStreamClose(controller)); }, start() { }, type: "bytes" }); } assert(isReadableStreamLike(stream2)); let action = null; let source = null; let length = null; let type = null; if (typeof object === "string") { source = object; type = "text/plain;charset=UTF-8"; } else if (object instanceof URLSearchParams) { source = object.toString(); type = "application/x-www-form-urlencoded;charset=UTF-8"; } else if (isArrayBuffer(object)) { source = new Uint8Array(object.slice()); } else if (ArrayBuffer.isView(object)) { source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)); } else if (util2.isFormDataLike(object)) { const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, "0")}`; const prefix = `--${boundary}\r Content-Disposition: form-data`; const escape = (str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"); const normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, "\r\n"); const blobParts = []; const rn = new Uint8Array([13, 10]); length = 0; let hasUnknownSizeValue = false; for (const [name, value] of object) { if (typeof value === "string") { const chunk2 = textEncoder.encode(prefix + `; name="${escape(normalizeLinefeeds(name))}"\r \r ${normalizeLinefeeds(value)}\r `); blobParts.push(chunk2); length += chunk2.byteLength; } else { const chunk2 = textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` + (value.name ? `; filename="${escape(value.name)}"` : "") + `\r Content-Type: ${value.type || "application/octet-stream"}\r \r `); blobParts.push(chunk2, value, rn); if (typeof value.size === "number") { length += chunk2.byteLength + value.size + rn.byteLength; } else { hasUnknownSizeValue = true; } } } const chunk = textEncoder.encode(`--${boundary}--\r `); blobParts.push(chunk); length += chunk.byteLength; if (hasUnknownSizeValue) { length = null; } source = object; action = async function* () { for (const part of blobParts) { if (part.stream) { yield* part.stream(); } else { yield part; } } }; type = `multipart/form-data; boundary=${boundary}`; } else if (isBlobLike(object)) { source = object; length = object.size; if (object.type) { type = object.type; } } else if (typeof object[Symbol.asyncIterator] === "function") { if (keepalive) { throw new TypeError("keepalive"); } if (util2.isDisturbed(object) || object.locked) { throw new TypeError( "Response body object should not be disturbed or locked" ); } stream2 = object instanceof ReadableStream ? object : ReadableStreamFrom(object); } if (typeof source === "string" || util2.isBuffer(source)) { length = Buffer.byteLength(source); } if (action != null) { let iterator2; stream2 = new ReadableStream({ async start() { iterator2 = action(object)[Symbol.asyncIterator](); }, async pull(controller) { const { value, done } = await iterator2.next(); if (done) { queueMicrotask(() => { controller.close(); controller.byobRequest?.respond(0); }); } else { if (!isErrored(stream2)) { const buffer = new Uint8Array(value); if (buffer.byteLength) { controller.enqueue(buffer); } } } return controller.desiredSize > 0; }, async cancel(reason) { await iterator2.return(); }, type: "bytes" }); } const body = { stream: stream2, source, length }; return [body, type]; } function safelyExtractBody(object, keepalive = false) { if (object instanceof ReadableStream) { assert(!util2.isDisturbed(object), "The body has already been consumed."); assert(!object.locked, "The stream is locked."); } return extractBody(object, keepalive); } function cloneBody(instance, body) { const [out1, out2] = body.stream.tee(); body.stream = out1; return { stream: out2, length: body.length, source: body.source }; } function throwIfAborted(state) { if (state.aborted) { throw new DOMException("The operation was aborted.", "AbortError"); } } function bodyMixinMethods(instance) { const methods = { blob() { return consumeBody(this, (bytes) => { let mimeType = bodyMimeType(this); if (mimeType === null) { mimeType = ""; } else if (mimeType) { mimeType = serializeAMimeType(mimeType); } return new Blob2([bytes], { type: mimeType }); }, instance); }, arrayBuffer() { return consumeBody(this, (bytes) => { return new Uint8Array(bytes).buffer; }, instance); }, text() { return consumeBody(this, utf8DecodeBytes, instance); }, json() { return consumeBody(this, parseJSONFromBytes, instance); }, formData() { return consumeBody(this, (value) => { const mimeType = bodyMimeType(this); if (mimeType !== null) { switch (mimeType.essence) { case "multipart/form-data": { const parsed = multipartFormDataParser(value, mimeType); if (parsed === "failure") { throw new TypeError("Failed to parse body as FormData."); } const fd = new FormData(); fd[kState] = parsed; return fd; } case "application/x-www-form-urlencoded": { const entries = new URLSearchParams(value.toString()); const fd = new FormData(); for (const [name, value2] of entries) { fd.append(name, value2); } return fd; } } } throw new TypeError( 'Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".' ); }, instance); }, bytes() { return consumeBody(this, (bytes) => { return new Uint8Array(bytes); }, instance); } }; return methods; } function mixinBody(prototype) { Object.assign(prototype.prototype, bodyMixinMethods(prototype)); } async function consumeBody(object, convertBytesToJSValue, instance) { webidl.brandCheck(object, instance); if (bodyUnusable(object)) { throw new TypeError("Body is unusable: Body has already been read"); } throwIfAborted(object[kState]); const promise = createDeferredPromise(); const errorSteps = (error) => promise.reject(error); const successSteps = (data) => { try { promise.resolve(convertBytesToJSValue(data)); } catch (e) { errorSteps(e); } }; if (object[kState].body == null) { successSteps(Buffer.allocUnsafe(0)); return promise.promise; } await fullyReadBody(object[kState].body, successSteps, errorSteps); return promise.promise; } function bodyUnusable(object) { const body = object[kState].body; return body != null && (body.stream.locked || util2.isDisturbed(body.stream)); } function parseJSONFromBytes(bytes) { return JSON.parse(utf8DecodeBytes(bytes)); } function bodyMimeType(requestOrResponse) { const headers = requestOrResponse[kState].headersList; const mimeType = extractMimeType(headers); if (mimeType === "failure") { return null; } return mimeType; } module2.exports = { extractBody, safelyExtractBody, cloneBody, mixinBody, streamRegistry, hasFinalizationRegistry, bodyUnusable }; } }); // node_modules/undici/lib/dispatcher/client-h1.js var require_client_h1 = __commonJS({ "node_modules/undici/lib/dispatcher/client-h1.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var util2 = require_util(); var { channels } = require_diagnostics(); var timers = require_timers(); var { RequestContentLengthMismatchError, ResponseContentLengthMismatchError, RequestAbortedError, HeadersTimeoutError, HeadersOverflowError, SocketError, InformationalError, BodyTimeoutError, HTTPParserError, ResponseExceededMaxSizeError } = require_errors(); var { kUrl, kReset, kClient, kParser, kBlocking, kRunning, kPending, kSize, kWriting, kQueue, kNoRef, kKeepAliveDefaultTimeout, kHostHeader, kPendingIdx, kRunningIdx, kError, kPipelining, kSocket, kKeepAliveTimeoutValue, kMaxHeadersSize, kKeepAliveMaxTimeout, kKeepAliveTimeoutThreshold, kHeadersTimeout, kBodyTimeout, kStrictContentLength, kMaxRequests, kCounter, kMaxResponseSize, kOnError, kResume, kHTTPContext } = require_symbols(); var constants3 = require_constants2(); var EMPTY_BUF = Buffer.alloc(0); var FastBuffer = Buffer[Symbol.species]; var addListener = util2.addListener; var removeAllListeners = util2.removeAllListeners; var extractBody; async function lazyllhttp() { const llhttpWasmData = process.env.JEST_WORKER_ID ? require_llhttp_wasm() : void 0; let mod; try { mod = await WebAssembly.compile(require_llhttp_simd_wasm()); } catch (e) { mod = await WebAssembly.compile(llhttpWasmData || require_llhttp_wasm()); } return await WebAssembly.instantiate(mod, { env: { /* eslint-disable camelcase */ wasm_on_url: (p, at, len) => { return 0; }, wasm_on_status: (p, at, len) => { assert(currentParser.ptr === p); const start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_message_begin: (p) => { assert(currentParser.ptr === p); return currentParser.onMessageBegin() || 0; }, wasm_on_header_field: (p, at, len) => { assert(currentParser.ptr === p); const start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_header_value: (p, at, len) => { assert(currentParser.ptr === p); const start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => { assert(currentParser.ptr === p); return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0; }, wasm_on_body: (p, at, len) => { assert(currentParser.ptr === p); const start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_message_complete: (p) => { assert(currentParser.ptr === p); return currentParser.onMessageComplete() || 0; } /* eslint-enable camelcase */ } }); } var llhttpInstance = null; var llhttpPromise = lazyllhttp(); llhttpPromise.catch(); var currentParser = null; var currentBufferRef = null; var currentBufferSize = 0; var currentBufferPtr = null; var USE_NATIVE_TIMER = 0; var USE_FAST_TIMER = 1; var TIMEOUT_HEADERS = 2 | USE_FAST_TIMER; var TIMEOUT_BODY = 4 | USE_FAST_TIMER; var TIMEOUT_KEEP_ALIVE = 8 | USE_NATIVE_TIMER; var Parser = class { constructor(client, socket, { exports: exports3 }) { assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); this.llhttp = exports3; this.ptr = this.llhttp.llhttp_alloc(constants3.TYPE.RESPONSE); this.client = client; this.socket = socket; this.timeout = null; this.timeoutValue = null; this.timeoutType = null; this.statusCode = null; this.statusText = ""; this.upgrade = false; this.headers = []; this.headersSize = 0; this.headersMaxSize = client[kMaxHeadersSize]; this.shouldKeepAlive = false; this.paused = false; this.resume = this.resume.bind(this); this.bytesRead = 0; this.keepAlive = ""; this.contentLength = ""; this.connection = ""; this.maxResponseSize = client[kMaxResponseSize]; } setTimeout(delay, type) { if (delay !== this.timeoutValue || type & USE_FAST_TIMER ^ this.timeoutType & USE_FAST_TIMER) { if (this.timeout) { timers.clearTimeout(this.timeout); this.timeout = null; } if (delay) { if (type & USE_FAST_TIMER) { this.timeout = timers.setFastTimeout(onParserTimeout, delay, new WeakRef(this)); } else { this.timeout = setTimeout(onParserTimeout, delay, new WeakRef(this)); this.timeout.unref(); } } this.timeoutValue = delay; } else if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } this.timeoutType = type; } resume() { if (this.socket.destroyed || !this.paused) { return; } assert(this.ptr != null); assert(currentParser == null); this.llhttp.llhttp_resume(this.ptr); assert(this.timeoutType === TIMEOUT_BODY); if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } this.paused = false; this.execute(this.socket.read() || EMPTY_BUF); this.readMore(); } readMore() { while (!this.paused && this.ptr) { const chunk = this.socket.read(); if (chunk === null) { break; } this.execute(chunk); } } execute(data) { assert(this.ptr != null); assert(currentParser == null); assert(!this.paused); const { socket, llhttp } = this; if (data.length > currentBufferSize) { if (currentBufferPtr) { llhttp.free(currentBufferPtr); } currentBufferSize = Math.ceil(data.length / 4096) * 4096; currentBufferPtr = llhttp.malloc(currentBufferSize); } new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data); try { let ret; try { currentBufferRef = data; currentParser = this; ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length); } catch (err) { throw err; } finally { currentParser = null; currentBufferRef = null; } const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr; if (ret === constants3.ERROR.PAUSED_UPGRADE) { this.onUpgrade(data.slice(offset)); } else if (ret === constants3.ERROR.PAUSED) { this.paused = true; socket.unshift(data.slice(offset)); } else if (ret !== constants3.ERROR.OK) { const ptr = llhttp.llhttp_get_error_reason(this.ptr); let message = ""; if (ptr) { const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0); message = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")"; } throw new HTTPParserError(message, constants3.ERROR[ret], data.slice(offset)); } } catch (err) { util2.destroy(socket, err); } } destroy() { assert(this.ptr != null); assert(currentParser == null); this.llhttp.llhttp_free(this.ptr); this.ptr = null; this.timeout && timers.clearTimeout(this.timeout); this.timeout = null; this.timeoutValue = null; this.timeoutType = null; this.paused = false; } onStatus(buf) { this.statusText = buf.toString(); } onMessageBegin() { const { socket, client } = this; if (socket.destroyed) { return -1; } const request2 = client[kQueue][client[kRunningIdx]]; if (!request2) { return -1; } request2.onResponseStarted(); } onHeaderField(buf) { const len = this.headers.length; if ((len & 1) === 0) { this.headers.push(buf); } else { this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); } this.trackHeader(buf.length); } onHeaderValue(buf) { let len = this.headers.length; if ((len & 1) === 1) { this.headers.push(buf); len += 1; } else { this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); } const key = this.headers[len - 2]; if (key.length === 10) { const headerName = util2.bufferToLowerCasedHeaderName(key); if (headerName === "keep-alive") { this.keepAlive += buf.toString(); } else if (headerName === "connection") { this.connection += buf.toString(); } } else if (key.length === 14 && util2.bufferToLowerCasedHeaderName(key) === "content-length") { this.contentLength += buf.toString(); } this.trackHeader(buf.length); } trackHeader(len) { this.headersSize += len; if (this.headersSize >= this.headersMaxSize) { util2.destroy(this.socket, new HeadersOverflowError()); } } onUpgrade(head) { const { upgrade, client, socket, headers, statusCode } = this; assert(upgrade); assert(client[kSocket] === socket); assert(!socket.destroyed); assert(!this.paused); assert((headers.length & 1) === 0); const request2 = client[kQueue][client[kRunningIdx]]; assert(request2); assert(request2.upgrade || request2.method === "CONNECT"); this.statusCode = null; this.statusText = ""; this.shouldKeepAlive = null; this.headers = []; this.headersSize = 0; socket.unshift(head); socket[kParser].destroy(); socket[kParser] = null; socket[kClient] = null; socket[kError] = null; removeAllListeners(socket); client[kSocket] = null; client[kHTTPContext] = null; client[kQueue][client[kRunningIdx]++] = null; client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade")); try { request2.onUpgrade(statusCode, headers, socket); } catch (err) { util2.destroy(socket, err); } client[kResume](); } onHeadersComplete(statusCode, upgrade, shouldKeepAlive) { const { client, socket, headers, statusText } = this; if (socket.destroyed) { return -1; } const request2 = client[kQueue][client[kRunningIdx]]; if (!request2) { return -1; } assert(!this.upgrade); assert(this.statusCode < 200); if (statusCode === 100) { util2.destroy(socket, new SocketError("bad response", util2.getSocketInfo(socket))); return -1; } if (upgrade && !request2.upgrade) { util2.destroy(socket, new SocketError("bad upgrade", util2.getSocketInfo(socket))); return -1; } assert(this.timeoutType === TIMEOUT_HEADERS); this.statusCode = statusCode; this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD. request2.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive"; if (this.statusCode >= 200) { const bodyTimeout = request2.bodyTimeout != null ? request2.bodyTimeout : client[kBodyTimeout]; this.setTimeout(bodyTimeout, TIMEOUT_BODY); } else if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } if (request2.method === "CONNECT") { assert(client[kRunning] === 1); this.upgrade = true; return 2; } if (upgrade) { assert(client[kRunning] === 1); this.upgrade = true; return 2; } assert((this.headers.length & 1) === 0); this.headers = []; this.headersSize = 0; if (this.shouldKeepAlive && client[kPipelining]) { const keepAliveTimeout = this.keepAlive ? util2.parseKeepAliveTimeout(this.keepAlive) : null; if (keepAliveTimeout != null) { const timeout = Math.min( keepAliveTimeout - client[kKeepAliveTimeoutThreshold], client[kKeepAliveMaxTimeout] ); if (timeout <= 0) { socket[kReset] = true; } else { client[kKeepAliveTimeoutValue] = timeout; } } else { client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]; } } else { socket[kReset] = true; } const pause = request2.onHeaders(statusCode, headers, this.resume, statusText) === false; if (request2.aborted) { return -1; } if (request2.method === "HEAD") { return 1; } if (statusCode < 200) { return 1; } if (socket[kBlocking]) { socket[kBlocking] = false; client[kResume](); } return pause ? constants3.ERROR.PAUSED : 0; } onBody(buf) { const { client, socket, statusCode, maxResponseSize } = this; if (socket.destroyed) { return -1; } const request2 = client[kQueue][client[kRunningIdx]]; assert(request2); assert(this.timeoutType === TIMEOUT_BODY); if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } assert(statusCode >= 200); if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { util2.destroy(socket, new ResponseExceededMaxSizeError()); return -1; } this.bytesRead += buf.length; if (request2.onData(buf) === false) { return constants3.ERROR.PAUSED; } } onMessageComplete() { const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this; if (socket.destroyed && (!statusCode || shouldKeepAlive)) { return -1; } if (upgrade) { return; } assert(statusCode >= 100); assert((this.headers.length & 1) === 0); const request2 = client[kQueue][client[kRunningIdx]]; assert(request2); this.statusCode = null; this.statusText = ""; this.bytesRead = 0; this.contentLength = ""; this.keepAlive = ""; this.connection = ""; this.headers = []; this.headersSize = 0; if (statusCode < 200) { return; } if (request2.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) { util2.destroy(socket, new ResponseContentLengthMismatchError()); return -1; } request2.onComplete(headers); client[kQueue][client[kRunningIdx]++] = null; if (socket[kWriting]) { assert(client[kRunning] === 0); util2.destroy(socket, new InformationalError("reset")); return constants3.ERROR.PAUSED; } else if (!shouldKeepAlive) { util2.destroy(socket, new InformationalError("reset")); return constants3.ERROR.PAUSED; } else if (socket[kReset] && client[kRunning] === 0) { util2.destroy(socket, new InformationalError("reset")); return constants3.ERROR.PAUSED; } else if (client[kPipelining] == null || client[kPipelining] === 1) { setImmediate(() => client[kResume]()); } else { client[kResume](); } } }; function onParserTimeout(parser) { const { socket, timeoutType, client, paused } = parser.deref(); if (timeoutType === TIMEOUT_HEADERS) { if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { assert(!paused, "cannot be paused while waiting for headers"); util2.destroy(socket, new HeadersTimeoutError()); } } else if (timeoutType === TIMEOUT_BODY) { if (!paused) { util2.destroy(socket, new BodyTimeoutError()); } } else if (timeoutType === TIMEOUT_KEEP_ALIVE) { assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]); util2.destroy(socket, new InformationalError("socket idle timeout")); } } async function connectH1(client, socket) { client[kSocket] = socket; if (!llhttpInstance) { llhttpInstance = await llhttpPromise; llhttpPromise = null; } socket[kNoRef] = false; socket[kWriting] = false; socket[kReset] = false; socket[kBlocking] = false; socket[kParser] = new Parser(client, socket, llhttpInstance); addListener(socket, "error", function(err) { assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); const parser = this[kParser]; if (err.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) { parser.onMessageComplete(); return; } this[kError] = err; this[kClient][kOnError](err); }); addListener(socket, "readable", function() { const parser = this[kParser]; if (parser) { parser.readMore(); } }); addListener(socket, "end", function() { const parser = this[kParser]; if (parser.statusCode && !parser.shouldKeepAlive) { parser.onMessageComplete(); return; } util2.destroy(this, new SocketError("other side closed", util2.getSocketInfo(this))); }); addListener(socket, "close", function() { const client2 = this[kClient]; const parser = this[kParser]; if (parser) { if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) { parser.onMessageComplete(); } this[kParser].destroy(); this[kParser] = null; } const err = this[kError] || new SocketError("closed", util2.getSocketInfo(this)); client2[kSocket] = null; client2[kHTTPContext] = null; if (client2.destroyed) { assert(client2[kPending] === 0); const requests = client2[kQueue].splice(client2[kRunningIdx]); for (let i = 0; i < requests.length; i++) { const request2 = requests[i]; util2.errorRequest(client2, request2, err); } } else if (client2[kRunning] > 0 && err.code !== "UND_ERR_INFO") { const request2 = client2[kQueue][client2[kRunningIdx]]; client2[kQueue][client2[kRunningIdx]++] = null; util2.errorRequest(client2, request2, err); } client2[kPendingIdx] = client2[kRunningIdx]; assert(client2[kRunning] === 0); client2.emit("disconnect", client2[kUrl], [client2], err); client2[kResume](); }); let closed = false; socket.on("close", () => { closed = true; }); return { version: "h1", defaultPipelining: 1, write(...args) { return writeH1(client, ...args); }, resume() { resumeH1(client); }, destroy(err, callback) { if (closed) { queueMicrotask(callback); } else { socket.destroy(err).on("close", callback); } }, get destroyed() { return socket.destroyed; }, busy(request2) { if (socket[kWriting] || socket[kReset] || socket[kBlocking]) { return true; } if (request2) { if (client[kRunning] > 0 && !request2.idempotent) { return true; } if (client[kRunning] > 0 && (request2.upgrade || request2.method === "CONNECT")) { return true; } if (client[kRunning] > 0 && util2.bodyLength(request2.body) !== 0 && (util2.isStream(request2.body) || util2.isAsyncIterable(request2.body) || util2.isFormDataLike(request2.body))) { return true; } } return false; } }; } function resumeH1(client) { const socket = client[kSocket]; if (socket && !socket.destroyed) { if (client[kSize] === 0) { if (!socket[kNoRef] && socket.unref) { socket.unref(); socket[kNoRef] = true; } } else if (socket[kNoRef] && socket.ref) { socket.ref(); socket[kNoRef] = false; } if (client[kSize] === 0) { if (socket[kParser].timeoutType !== TIMEOUT_KEEP_ALIVE) { socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_KEEP_ALIVE); } } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { const request2 = client[kQueue][client[kRunningIdx]]; const headersTimeout = request2.headersTimeout != null ? request2.headersTimeout : client[kHeadersTimeout]; socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS); } } } } function shouldSendContentLength(method) { return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT"; } function writeH1(client, request2) { const { method, path: path2, host, upgrade, blocking, reset } = request2; let { body, headers, contentLength } = request2; const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH" || method === "QUERY" || method === "PROPFIND" || method === "PROPPATCH"; if (util2.isFormDataLike(body)) { if (!extractBody) { extractBody = require_body().extractBody; } const [bodyStream, contentType] = extractBody(body); if (request2.contentType == null) { headers.push("content-type", contentType); } body = bodyStream.stream; contentLength = bodyStream.length; } else if (util2.isBlobLike(body) && request2.contentType == null && body.type) { headers.push("content-type", body.type); } if (body && typeof body.read === "function") { body.read(0); } const bodyLength = util2.bodyLength(body); contentLength = bodyLength ?? contentLength; if (contentLength === null) { contentLength = request2.contentLength; } if (contentLength === 0 && !expectsPayload) { contentLength = null; } if (shouldSendContentLength(method) && contentLength > 0 && request2.contentLength !== null && request2.contentLength !== contentLength) { if (client[kStrictContentLength]) { util2.errorRequest(client, request2, new RequestContentLengthMismatchError()); return false; } process.emitWarning(new RequestContentLengthMismatchError()); } const socket = client[kSocket]; const abort = (err) => { if (request2.aborted || request2.completed) { return; } util2.errorRequest(client, request2, err || new RequestAbortedError()); util2.destroy(body); util2.destroy(socket, new InformationalError("aborted")); }; try { request2.onConnect(abort); } catch (err) { util2.errorRequest(client, request2, err); } if (request2.aborted) { return false; } if (method === "HEAD") { socket[kReset] = true; } if (upgrade || method === "CONNECT") { socket[kReset] = true; } if (reset != null) { socket[kReset] = reset; } if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) { socket[kReset] = true; } if (blocking) { socket[kBlocking] = true; } let header = `${method} ${path2} HTTP/1.1\r `; if (typeof host === "string") { header += `host: ${host}\r `; } else { header += client[kHostHeader]; } if (upgrade) { header += `connection: upgrade\r upgrade: ${upgrade}\r `; } else if (client[kPipelining] && !socket[kReset]) { header += "connection: keep-alive\r\n"; } else { header += "connection: close\r\n"; } if (Array.isArray(headers)) { for (let n = 0; n < headers.length; n += 2) { const key = headers[n + 0]; const val = headers[n + 1]; if (Array.isArray(val)) { for (let i = 0; i < val.length; i++) { header += `${key}: ${val[i]}\r `; } } else { header += `${key}: ${val}\r `; } } } if (channels.sendHeaders.hasSubscribers) { channels.sendHeaders.publish({ request: request2, headers: header, socket }); } if (!body || bodyLength === 0) { writeBuffer(abort, null, client, request2, socket, contentLength, header, expectsPayload); } else if (util2.isBuffer(body)) { writeBuffer(abort, body, client, request2, socket, contentLength, header, expectsPayload); } else if (util2.isBlobLike(body)) { if (typeof body.stream === "function") { writeIterable(abort, body.stream(), client, request2, socket, contentLength, header, expectsPayload); } else { writeBlob(abort, body, client, request2, socket, contentLength, header, expectsPayload); } } else if (util2.isStream(body)) { writeStream(abort, body, client, request2, socket, contentLength, header, expectsPayload); } else if (util2.isIterable(body)) { writeIterable(abort, body, client, request2, socket, contentLength, header, expectsPayload); } else { assert(false); } return true; } function writeStream(abort, body, client, request2, socket, contentLength, header, expectsPayload) { assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); let finished = false; const writer = new AsyncWriter({ abort, socket, request: request2, contentLength, client, expectsPayload, header }); const onData = function(chunk) { if (finished) { return; } try { if (!writer.write(chunk) && this.pause) { this.pause(); } } catch (err) { util2.destroy(this, err); } }; const onDrain = function() { if (finished) { return; } if (body.resume) { body.resume(); } }; const onClose = function() { queueMicrotask(() => { body.removeListener("error", onFinished); }); if (!finished) { const err = new RequestAbortedError(); queueMicrotask(() => onFinished(err)); } }; const onFinished = function(err) { if (finished) { return; } finished = true; assert(socket.destroyed || socket[kWriting] && client[kRunning] <= 1); socket.off("drain", onDrain).off("error", onFinished); body.removeListener("data", onData).removeListener("end", onFinished).removeListener("close", onClose); if (!err) { try { writer.end(); } catch (er) { err = er; } } writer.destroy(err); if (err && (err.code !== "UND_ERR_INFO" || err.message !== "reset")) { util2.destroy(body, err); } else { util2.destroy(body); } }; body.on("data", onData).on("end", onFinished).on("error", onFinished).on("close", onClose); if (body.resume) { body.resume(); } socket.on("drain", onDrain).on("error", onFinished); if (body.errorEmitted ?? body.errored) { setImmediate(() => onFinished(body.errored)); } else if (body.endEmitted ?? body.readableEnded) { setImmediate(() => onFinished(null)); } if (body.closeEmitted ?? body.closed) { setImmediate(onClose); } } function writeBuffer(abort, body, client, request2, socket, contentLength, header, expectsPayload) { try { if (!body) { if (contentLength === 0) { socket.write(`${header}content-length: 0\r \r `, "latin1"); } else { assert(contentLength === null, "no body must not have content length"); socket.write(`${header}\r `, "latin1"); } } else if (util2.isBuffer(body)) { assert(contentLength === body.byteLength, "buffer body must have content length"); socket.cork(); socket.write(`${header}content-length: ${contentLength}\r \r `, "latin1"); socket.write(body); socket.uncork(); request2.onBodySent(body); if (!expectsPayload && request2.reset !== false) { socket[kReset] = true; } } request2.onRequestSent(); client[kResume](); } catch (err) { abort(err); } } async function writeBlob(abort, body, client, request2, socket, contentLength, header, expectsPayload) { assert(contentLength === body.size, "blob body must have content length"); try { if (contentLength != null && contentLength !== body.size) { throw new RequestContentLengthMismatchError(); } const buffer = Buffer.from(await body.arrayBuffer()); socket.cork(); socket.write(`${header}content-length: ${contentLength}\r \r `, "latin1"); socket.write(buffer); socket.uncork(); request2.onBodySent(buffer); request2.onRequestSent(); if (!expectsPayload && request2.reset !== false) { socket[kReset] = true; } client[kResume](); } catch (err) { abort(err); } } async function writeIterable(abort, body, client, request2, socket, contentLength, header, expectsPayload) { assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); let callback = null; function onDrain() { if (callback) { const cb = callback; callback = null; cb(); } } const waitForDrain = () => new Promise((resolve, reject) => { assert(callback === null); if (socket[kError]) { reject(socket[kError]); } else { callback = resolve; } }); socket.on("close", onDrain).on("drain", onDrain); const writer = new AsyncWriter({ abort, socket, request: request2, contentLength, client, expectsPayload, header }); try { for await (const chunk of body) { if (socket[kError]) { throw socket[kError]; } if (!writer.write(chunk)) { await waitForDrain(); } } writer.end(); } catch (err) { writer.destroy(err); } finally { socket.off("close", onDrain).off("drain", onDrain); } } var AsyncWriter = class { constructor({ abort, socket, request: request2, contentLength, client, expectsPayload, header }) { this.socket = socket; this.request = request2; this.contentLength = contentLength; this.client = client; this.bytesWritten = 0; this.expectsPayload = expectsPayload; this.header = header; this.abort = abort; socket[kWriting] = true; } write(chunk) { const { socket, request: request2, contentLength, client, bytesWritten, expectsPayload, header } = this; if (socket[kError]) { throw socket[kError]; } if (socket.destroyed) { return false; } const len = Buffer.byteLength(chunk); if (!len) { return true; } if (contentLength !== null && bytesWritten + len > contentLength) { if (client[kStrictContentLength]) { throw new RequestContentLengthMismatchError(); } process.emitWarning(new RequestContentLengthMismatchError()); } socket.cork(); if (bytesWritten === 0) { if (!expectsPayload && request2.reset !== false) { socket[kReset] = true; } if (contentLength === null) { socket.write(`${header}transfer-encoding: chunked\r `, "latin1"); } else { socket.write(`${header}content-length: ${contentLength}\r \r `, "latin1"); } } if (contentLength === null) { socket.write(`\r ${len.toString(16)}\r `, "latin1"); } this.bytesWritten += len; const ret = socket.write(chunk); socket.uncork(); request2.onBodySent(chunk); if (!ret) { if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { if (socket[kParser].timeout.refresh) { socket[kParser].timeout.refresh(); } } } return ret; } end() { const { socket, contentLength, client, bytesWritten, expectsPayload, header, request: request2 } = this; request2.onRequestSent(); socket[kWriting] = false; if (socket[kError]) { throw socket[kError]; } if (socket.destroyed) { return; } if (bytesWritten === 0) { if (expectsPayload) { socket.write(`${header}content-length: 0\r \r `, "latin1"); } else { socket.write(`${header}\r `, "latin1"); } } else if (contentLength === null) { socket.write("\r\n0\r\n\r\n", "latin1"); } if (contentLength !== null && bytesWritten !== contentLength) { if (client[kStrictContentLength]) { throw new RequestContentLengthMismatchError(); } else { process.emitWarning(new RequestContentLengthMismatchError()); } } if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { if (socket[kParser].timeout.refresh) { socket[kParser].timeout.refresh(); } } client[kResume](); } destroy(err) { const { socket, client, abort } = this; socket[kWriting] = false; if (err) { assert(client[kRunning] <= 1, "pipeline should only contain this request"); abort(err); } } }; module2.exports = connectH1; } }); // node_modules/undici/lib/dispatcher/client-h2.js var require_client_h2 = __commonJS({ "node_modules/undici/lib/dispatcher/client-h2.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { pipeline: pipeline2 } = require("node:stream"); var util2 = require_util(); var { RequestContentLengthMismatchError, RequestAbortedError, SocketError, InformationalError } = require_errors(); var { kUrl, kReset, kClient, kRunning, kPending, kQueue, kPendingIdx, kRunningIdx, kError, kSocket, kStrictContentLength, kOnError, kMaxConcurrentStreams, kHTTP2Session, kResume, kSize, kHTTPContext } = require_symbols(); var kOpenStreams = /* @__PURE__ */ Symbol("open streams"); var extractBody; var h2ExperimentalWarned = false; var http2; try { http2 = require("node:http2"); } catch { http2 = { constants: {} }; } var { constants: { HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, HTTP2_HEADER_SCHEME, HTTP2_HEADER_CONTENT_LENGTH, HTTP2_HEADER_EXPECT, HTTP2_HEADER_STATUS } } = http2; function parseH2Headers(headers) { const result = []; for (const [name, value] of Object.entries(headers)) { if (Array.isArray(value)) { for (const subvalue of value) { result.push(Buffer.from(name), Buffer.from(subvalue)); } } else { result.push(Buffer.from(name), Buffer.from(value)); } } return result; } async function connectH2(client, socket) { client[kSocket] = socket; if (!h2ExperimentalWarned) { h2ExperimentalWarned = true; process.emitWarning("H2 support is experimental, expect them to change at any time.", { code: "UNDICI-H2" }); } const session = http2.connect(client[kUrl], { createConnection: () => socket, peerMaxConcurrentStreams: client[kMaxConcurrentStreams] }); session[kOpenStreams] = 0; session[kClient] = client; session[kSocket] = socket; util2.addListener(session, "error", onHttp2SessionError); util2.addListener(session, "frameError", onHttp2FrameError); util2.addListener(session, "end", onHttp2SessionEnd); util2.addListener(session, "goaway", onHTTP2GoAway); util2.addListener(session, "close", function() { const { [kClient]: client2 } = this; const { [kSocket]: socket2 } = client2; const err = this[kSocket][kError] || this[kError] || new SocketError("closed", util2.getSocketInfo(socket2)); client2[kHTTP2Session] = null; if (client2.destroyed) { assert(client2[kPending] === 0); const requests = client2[kQueue].splice(client2[kRunningIdx]); for (let i = 0; i < requests.length; i++) { const request2 = requests[i]; util2.errorRequest(client2, request2, err); } } }); session.unref(); client[kHTTP2Session] = session; socket[kHTTP2Session] = session; util2.addListener(socket, "error", function(err) { assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); this[kError] = err; this[kClient][kOnError](err); }); util2.addListener(socket, "end", function() { util2.destroy(this, new SocketError("other side closed", util2.getSocketInfo(this))); }); util2.addListener(socket, "close", function() { const err = this[kError] || new SocketError("closed", util2.getSocketInfo(this)); client[kSocket] = null; if (this[kHTTP2Session] != null) { this[kHTTP2Session].destroy(err); } client[kPendingIdx] = client[kRunningIdx]; assert(client[kRunning] === 0); client.emit("disconnect", client[kUrl], [client], err); client[kResume](); }); let closed = false; socket.on("close", () => { closed = true; }); return { version: "h2", defaultPipelining: Infinity, write(...args) { return writeH2(client, ...args); }, resume() { resumeH2(client); }, destroy(err, callback) { if (closed) { queueMicrotask(callback); } else { socket.destroy(err).on("close", callback); } }, get destroyed() { return socket.destroyed; }, busy() { return false; } }; } function resumeH2(client) { const socket = client[kSocket]; if (socket?.destroyed === false) { if (client[kSize] === 0 && client[kMaxConcurrentStreams] === 0) { socket.unref(); client[kHTTP2Session].unref(); } else { socket.ref(); client[kHTTP2Session].ref(); } } } function onHttp2SessionError(err) { assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); this[kSocket][kError] = err; this[kClient][kOnError](err); } function onHttp2FrameError(type, code, id) { if (id === 0) { const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`); this[kSocket][kError] = err; this[kClient][kOnError](err); } } function onHttp2SessionEnd() { const err = new SocketError("other side closed", util2.getSocketInfo(this[kSocket])); this.destroy(err); util2.destroy(this[kSocket], err); } function onHTTP2GoAway(code) { const err = this[kError] || new SocketError(`HTTP/2: "GOAWAY" frame received with code ${code}`, util2.getSocketInfo(this)); const client = this[kClient]; client[kSocket] = null; client[kHTTPContext] = null; if (this[kHTTP2Session] != null) { this[kHTTP2Session].destroy(err); this[kHTTP2Session] = null; } util2.destroy(this[kSocket], err); if (client[kRunningIdx] < client[kQueue].length) { const request2 = client[kQueue][client[kRunningIdx]]; client[kQueue][client[kRunningIdx]++] = null; util2.errorRequest(client, request2, err); client[kPendingIdx] = client[kRunningIdx]; } assert(client[kRunning] === 0); client.emit("disconnect", client[kUrl], [client], err); client[kResume](); } function shouldSendContentLength(method) { return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT"; } function writeH2(client, request2) { const session = client[kHTTP2Session]; const { method, path: path2, host, upgrade, expectContinue, signal, headers: reqHeaders } = request2; let { body } = request2; if (upgrade) { util2.errorRequest(client, request2, new Error("Upgrade not supported for H2")); return false; } const headers = {}; for (let n = 0; n < reqHeaders.length; n += 2) { const key = reqHeaders[n + 0]; const val = reqHeaders[n + 1]; if (Array.isArray(val)) { for (let i = 0; i < val.length; i++) { if (headers[key]) { headers[key] += `,${val[i]}`; } else { headers[key] = val[i]; } } } else { headers[key] = val; } } let stream2; const { hostname, port } = client[kUrl]; headers[HTTP2_HEADER_AUTHORITY] = host || `${hostname}${port ? `:${port}` : ""}`; headers[HTTP2_HEADER_METHOD] = method; const abort = (err) => { if (request2.aborted || request2.completed) { return; } err = err || new RequestAbortedError(); util2.errorRequest(client, request2, err); if (stream2 != null) { util2.destroy(stream2, err); } util2.destroy(body, err); client[kQueue][client[kRunningIdx]++] = null; client[kResume](); }; try { request2.onConnect(abort); } catch (err) { util2.errorRequest(client, request2, err); } if (request2.aborted) { return false; } if (method === "CONNECT") { session.ref(); stream2 = session.request(headers, { endStream: false, signal }); if (stream2.id && !stream2.pending) { request2.onUpgrade(null, null, stream2); ++session[kOpenStreams]; client[kQueue][client[kRunningIdx]++] = null; } else { stream2.once("ready", () => { request2.onUpgrade(null, null, stream2); ++session[kOpenStreams]; client[kQueue][client[kRunningIdx]++] = null; }); } stream2.once("close", () => { session[kOpenStreams] -= 1; if (session[kOpenStreams] === 0) session.unref(); }); return true; } headers[HTTP2_HEADER_PATH] = path2; headers[HTTP2_HEADER_SCHEME] = "https"; const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH"; if (body && typeof body.read === "function") { body.read(0); } let contentLength = util2.bodyLength(body); if (util2.isFormDataLike(body)) { extractBody ??= require_body().extractBody; const [bodyStream, contentType] = extractBody(body); headers["content-type"] = contentType; body = bodyStream.stream; contentLength = bodyStream.length; } if (contentLength == null) { contentLength = request2.contentLength; } if (contentLength === 0 || !expectsPayload) { contentLength = null; } if (shouldSendContentLength(method) && contentLength > 0 && request2.contentLength != null && request2.contentLength !== contentLength) { if (client[kStrictContentLength]) { util2.errorRequest(client, request2, new RequestContentLengthMismatchError()); return false; } process.emitWarning(new RequestContentLengthMismatchError()); } if (contentLength != null) { assert(body, "no body must not have content length"); headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`; } session.ref(); const shouldEndStream = method === "GET" || method === "HEAD" || body === null; if (expectContinue) { headers[HTTP2_HEADER_EXPECT] = "100-continue"; stream2 = session.request(headers, { endStream: shouldEndStream, signal }); stream2.once("continue", writeBodyH2); } else { stream2 = session.request(headers, { endStream: shouldEndStream, signal }); writeBodyH2(); } ++session[kOpenStreams]; stream2.once("response", (headers2) => { const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2; request2.onResponseStarted(); if (request2.aborted) { const err = new RequestAbortedError(); util2.errorRequest(client, request2, err); util2.destroy(stream2, err); return; } if (request2.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream2.resume.bind(stream2), "") === false) { stream2.pause(); } stream2.on("data", (chunk) => { if (request2.onData(chunk) === false) { stream2.pause(); } }); }); stream2.once("end", () => { if (stream2.state?.state == null || stream2.state.state < 6) { request2.onComplete([]); } if (session[kOpenStreams] === 0) { session.unref(); } abort(new InformationalError("HTTP/2: stream half-closed (remote)")); client[kQueue][client[kRunningIdx]++] = null; client[kPendingIdx] = client[kRunningIdx]; client[kResume](); }); stream2.once("close", () => { session[kOpenStreams] -= 1; if (session[kOpenStreams] === 0) { session.unref(); } }); stream2.once("error", function(err) { abort(err); }); stream2.once("frameError", (type, code) => { abort(new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`)); }); return true; function writeBodyH2() { if (!body || contentLength === 0) { writeBuffer( abort, stream2, null, client, request2, client[kSocket], contentLength, expectsPayload ); } else if (util2.isBuffer(body)) { writeBuffer( abort, stream2, body, client, request2, client[kSocket], contentLength, expectsPayload ); } else if (util2.isBlobLike(body)) { if (typeof body.stream === "function") { writeIterable( abort, stream2, body.stream(), client, request2, client[kSocket], contentLength, expectsPayload ); } else { writeBlob( abort, stream2, body, client, request2, client[kSocket], contentLength, expectsPayload ); } } else if (util2.isStream(body)) { writeStream( abort, client[kSocket], expectsPayload, stream2, body, client, request2, contentLength ); } else if (util2.isIterable(body)) { writeIterable( abort, stream2, body, client, request2, client[kSocket], contentLength, expectsPayload ); } else { assert(false); } } } function writeBuffer(abort, h2stream, body, client, request2, socket, contentLength, expectsPayload) { try { if (body != null && util2.isBuffer(body)) { assert(contentLength === body.byteLength, "buffer body must have content length"); h2stream.cork(); h2stream.write(body); h2stream.uncork(); h2stream.end(); request2.onBodySent(body); } if (!expectsPayload) { socket[kReset] = true; } request2.onRequestSent(); client[kResume](); } catch (error) { abort(error); } } function writeStream(abort, socket, expectsPayload, h2stream, body, client, request2, contentLength) { assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); const pipe = pipeline2( body, h2stream, (err) => { if (err) { util2.destroy(pipe, err); abort(err); } else { util2.removeAllListeners(pipe); request2.onRequestSent(); if (!expectsPayload) { socket[kReset] = true; } client[kResume](); } } ); util2.addListener(pipe, "data", onPipeData); function onPipeData(chunk) { request2.onBodySent(chunk); } } async function writeBlob(abort, h2stream, body, client, request2, socket, contentLength, expectsPayload) { assert(contentLength === body.size, "blob body must have content length"); try { if (contentLength != null && contentLength !== body.size) { throw new RequestContentLengthMismatchError(); } const buffer = Buffer.from(await body.arrayBuffer()); h2stream.cork(); h2stream.write(buffer); h2stream.uncork(); h2stream.end(); request2.onBodySent(buffer); request2.onRequestSent(); if (!expectsPayload) { socket[kReset] = true; } client[kResume](); } catch (err) { abort(err); } } async function writeIterable(abort, h2stream, body, client, request2, socket, contentLength, expectsPayload) { assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); let callback = null; function onDrain() { if (callback) { const cb = callback; callback = null; cb(); } } const waitForDrain = () => new Promise((resolve, reject) => { assert(callback === null); if (socket[kError]) { reject(socket[kError]); } else { callback = resolve; } }); h2stream.on("close", onDrain).on("drain", onDrain); try { for await (const chunk of body) { if (socket[kError]) { throw socket[kError]; } const res = h2stream.write(chunk); request2.onBodySent(chunk); if (!res) { await waitForDrain(); } } h2stream.end(); request2.onRequestSent(); if (!expectsPayload) { socket[kReset] = true; } client[kResume](); } catch (err) { abort(err); } finally { h2stream.off("close", onDrain).off("drain", onDrain); } } module2.exports = connectH2; } }); // node_modules/undici/lib/handler/redirect-handler.js var require_redirect_handler = __commonJS({ "node_modules/undici/lib/handler/redirect-handler.js"(exports2, module2) { "use strict"; var util2 = require_util(); var { kBodyUsed } = require_symbols(); var assert = require("node:assert"); var { InvalidArgumentError } = require_errors(); var EE = require("node:events"); var redirectableStatusCodes = [300, 301, 302, 303, 307, 308]; var kBody = /* @__PURE__ */ Symbol("body"); var BodyAsyncIterable = class { constructor(body) { this[kBody] = body; this[kBodyUsed] = false; } async *[Symbol.asyncIterator]() { assert(!this[kBodyUsed], "disturbed"); this[kBodyUsed] = true; yield* this[kBody]; } }; var RedirectHandler = class { constructor(dispatch, maxRedirections, opts, handler2) { if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } util2.validateHandler(handler2, opts.method, opts.upgrade); this.dispatch = dispatch; this.location = null; this.abort = null; this.opts = { ...opts, maxRedirections: 0 }; this.maxRedirections = maxRedirections; this.handler = handler2; this.history = []; this.redirectionLimitReached = false; if (util2.isStream(this.opts.body)) { if (util2.bodyLength(this.opts.body) === 0) { this.opts.body.on("data", function() { assert(false); }); } if (typeof this.opts.body.readableDidRead !== "boolean") { this.opts.body[kBodyUsed] = false; EE.prototype.on.call(this.opts.body, "data", function() { this[kBodyUsed] = true; }); } } else if (this.opts.body && typeof this.opts.body.pipeTo === "function") { this.opts.body = new BodyAsyncIterable(this.opts.body); } else if (this.opts.body && typeof this.opts.body !== "string" && !ArrayBuffer.isView(this.opts.body) && util2.isIterable(this.opts.body)) { this.opts.body = new BodyAsyncIterable(this.opts.body); } } onConnect(abort) { this.abort = abort; this.handler.onConnect(abort, { history: this.history }); } onUpgrade(statusCode, headers, socket) { this.handler.onUpgrade(statusCode, headers, socket); } onError(error) { this.handler.onError(error); } onHeaders(statusCode, headers, resume, statusText) { this.location = this.history.length >= this.maxRedirections || util2.isDisturbed(this.opts.body) ? null : parseLocation(statusCode, headers); if (this.opts.throwOnMaxRedirect && this.history.length >= this.maxRedirections) { if (this.request) { this.request.abort(new Error("max redirects")); } this.redirectionLimitReached = true; this.abort(new Error("max redirects")); return; } if (this.opts.origin) { this.history.push(new URL(this.opts.path, this.opts.origin)); } if (!this.location) { return this.handler.onHeaders(statusCode, headers, resume, statusText); } const { origin, pathname, search } = util2.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))); const path2 = search ? `${pathname}${search}` : pathname; this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin); this.opts.path = path2; this.opts.origin = origin; this.opts.maxRedirections = 0; this.opts.query = null; if (statusCode === 303 && this.opts.method !== "HEAD") { this.opts.method = "GET"; this.opts.body = null; } } onData(chunk) { if (this.location) { } else { return this.handler.onData(chunk); } } onComplete(trailers) { if (this.location) { this.location = null; this.abort = null; this.dispatch(this.opts, this); } else { this.handler.onComplete(trailers); } } onBodySent(chunk) { if (this.handler.onBodySent) { this.handler.onBodySent(chunk); } } }; function parseLocation(statusCode, headers) { if (redirectableStatusCodes.indexOf(statusCode) === -1) { return null; } for (let i = 0; i < headers.length; i += 2) { if (headers[i].length === 8 && util2.headerNameToString(headers[i]) === "location") { return headers[i + 1]; } } } function shouldRemoveHeader(header, removeContent, unknownOrigin) { if (header.length === 4) { return util2.headerNameToString(header) === "host"; } if (removeContent && util2.headerNameToString(header).startsWith("content-")) { return true; } if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) { const name = util2.headerNameToString(header); return name === "authorization" || name === "cookie" || name === "proxy-authorization"; } return false; } function cleanRequestHeaders(headers, removeContent, unknownOrigin) { const ret = []; if (Array.isArray(headers)) { for (let i = 0; i < headers.length; i += 2) { if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) { ret.push(headers[i], headers[i + 1]); } } } else if (headers && typeof headers === "object") { for (const key of Object.keys(headers)) { if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { ret.push(key, headers[key]); } } } else { assert(headers == null, "headers must be an object or an array"); } return ret; } module2.exports = RedirectHandler; } }); // node_modules/undici/lib/interceptor/redirect-interceptor.js var require_redirect_interceptor = __commonJS({ "node_modules/undici/lib/interceptor/redirect-interceptor.js"(exports2, module2) { "use strict"; var RedirectHandler = require_redirect_handler(); function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) { return (dispatch) => { return function Intercept(opts, handler2) { const { maxRedirections = defaultMaxRedirections } = opts; if (!maxRedirections) { return dispatch(opts, handler2); } const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler2); opts = { ...opts, maxRedirections: 0 }; return dispatch(opts, redirectHandler); }; }; } module2.exports = createRedirectInterceptor; } }); // node_modules/undici/lib/dispatcher/client.js var require_client = __commonJS({ "node_modules/undici/lib/dispatcher/client.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var net = require("node:net"); var http2 = require("node:http"); var util2 = require_util(); var { channels } = require_diagnostics(); var Request = require_request(); var DispatcherBase = require_dispatcher_base(); var { InvalidArgumentError, InformationalError, ClientDestroyedError } = require_errors(); var buildConnector = require_connect(); var { kUrl, kServerName, kClient, kBusy, kConnect, kResuming, kRunning, kPending, kSize, kQueue, kConnected, kConnecting, kNeedDrain, kKeepAliveDefaultTimeout, kHostHeader, kPendingIdx, kRunningIdx, kError, kPipelining, kKeepAliveTimeoutValue, kMaxHeadersSize, kKeepAliveMaxTimeout, kKeepAliveTimeoutThreshold, kHeadersTimeout, kBodyTimeout, kStrictContentLength, kConnector, kMaxRedirections, kMaxRequests, kCounter, kClose, kDestroy, kDispatch, kInterceptors, kLocalAddress, kMaxResponseSize, kOnError, kHTTPContext, kMaxConcurrentStreams, kResume } = require_symbols(); var connectH1 = require_client_h1(); var connectH2 = require_client_h2(); var deprecatedInterceptorWarned = false; var kClosedResolve = /* @__PURE__ */ Symbol("kClosedResolve"); var noop2 = () => { }; function getPipelining(client) { return client[kPipelining] ?? client[kHTTPContext]?.defaultPipelining ?? 1; } var Client = class extends DispatcherBase { /** * * @param {string|URL} url * @param {import('../../types/client.js').Client.Options} options */ constructor(url, { interceptors, maxHeaderSize, headersTimeout, socketTimeout, requestTimeout, connectTimeout, bodyTimeout, idleTimeout, keepAlive, keepAliveTimeout, maxKeepAliveTimeout, keepAliveMaxTimeout, keepAliveTimeoutThreshold, socketPath, pipelining, tls, strictContentLength, maxCachedSessions, maxRedirections, connect: connect2, maxRequestsPerClient, localAddress, maxResponseSize, autoSelectFamily, autoSelectFamilyAttemptTimeout, // h2 maxConcurrentStreams, allowH2 } = {}) { super(); if (keepAlive !== void 0) { throw new InvalidArgumentError("unsupported keepAlive, use pipelining=0 instead"); } if (socketTimeout !== void 0) { throw new InvalidArgumentError("unsupported socketTimeout, use headersTimeout & bodyTimeout instead"); } if (requestTimeout !== void 0) { throw new InvalidArgumentError("unsupported requestTimeout, use headersTimeout & bodyTimeout instead"); } if (idleTimeout !== void 0) { throw new InvalidArgumentError("unsupported idleTimeout, use keepAliveTimeout instead"); } if (maxKeepAliveTimeout !== void 0) { throw new InvalidArgumentError("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead"); } if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) { throw new InvalidArgumentError("invalid maxHeaderSize"); } if (socketPath != null && typeof socketPath !== "string") { throw new InvalidArgumentError("invalid socketPath"); } if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) { throw new InvalidArgumentError("invalid connectTimeout"); } if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) { throw new InvalidArgumentError("invalid keepAliveTimeout"); } if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) { throw new InvalidArgumentError("invalid keepAliveMaxTimeout"); } if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) { throw new InvalidArgumentError("invalid keepAliveTimeoutThreshold"); } if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) { throw new InvalidArgumentError("headersTimeout must be a positive integer or zero"); } if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) { throw new InvalidArgumentError("bodyTimeout must be a positive integer or zero"); } if (connect2 != null && typeof connect2 !== "function" && typeof connect2 !== "object") { throw new InvalidArgumentError("connect must be a function or an object"); } if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) { throw new InvalidArgumentError("maxRequestsPerClient must be a positive number"); } if (localAddress != null && (typeof localAddress !== "string" || net.isIP(localAddress) === 0)) { throw new InvalidArgumentError("localAddress must be valid string IP address"); } if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) { throw new InvalidArgumentError("maxResponseSize must be a positive number"); } if (autoSelectFamilyAttemptTimeout != null && (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)) { throw new InvalidArgumentError("autoSelectFamilyAttemptTimeout must be a positive number"); } if (allowH2 != null && typeof allowH2 !== "boolean") { throw new InvalidArgumentError("allowH2 must be a valid boolean value"); } if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== "number" || maxConcurrentStreams < 1)) { throw new InvalidArgumentError("maxConcurrentStreams must be a positive integer, greater than 0"); } if (typeof connect2 !== "function") { connect2 = buildConnector({ ...tls, maxCachedSessions, allowH2, socketPath, timeout: connectTimeout, ...autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, ...connect2 }); } if (interceptors?.Client && Array.isArray(interceptors.Client)) { this[kInterceptors] = interceptors.Client; if (!deprecatedInterceptorWarned) { deprecatedInterceptorWarned = true; process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.", { code: "UNDICI-CLIENT-INTERCEPTOR-DEPRECATED" }); } } else { this[kInterceptors] = [createRedirectInterceptor({ maxRedirections })]; } this[kUrl] = util2.parseOrigin(url); this[kConnector] = connect2; this[kPipelining] = pipelining != null ? pipelining : 1; this[kMaxHeadersSize] = maxHeaderSize || http2.maxHeaderSize; this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout; this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 6e5 : keepAliveMaxTimeout; this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 2e3 : keepAliveTimeoutThreshold; this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]; this[kServerName] = null; this[kLocalAddress] = localAddress != null ? localAddress : null; this[kResuming] = 0; this[kNeedDrain] = 0; this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ""}\r `; this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 3e5; this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 3e5; this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength; this[kMaxRedirections] = maxRedirections; this[kMaxRequests] = maxRequestsPerClient; this[kClosedResolve] = null; this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1; this[kMaxConcurrentStreams] = maxConcurrentStreams != null ? maxConcurrentStreams : 100; this[kHTTPContext] = null; this[kQueue] = []; this[kRunningIdx] = 0; this[kPendingIdx] = 0; this[kResume] = (sync) => resume(this, sync); this[kOnError] = (err) => onError(this, err); } get pipelining() { return this[kPipelining]; } set pipelining(value) { this[kPipelining] = value; this[kResume](true); } get [kPending]() { return this[kQueue].length - this[kPendingIdx]; } get [kRunning]() { return this[kPendingIdx] - this[kRunningIdx]; } get [kSize]() { return this[kQueue].length - this[kRunningIdx]; } get [kConnected]() { return !!this[kHTTPContext] && !this[kConnecting] && !this[kHTTPContext].destroyed; } get [kBusy]() { return Boolean( this[kHTTPContext]?.busy(null) || this[kSize] >= (getPipelining(this) || 1) || this[kPending] > 0 ); } /* istanbul ignore: only used for test */ [kConnect](cb) { connect(this); this.once("connect", cb); } [kDispatch](opts, handler2) { const origin = opts.origin || this[kUrl].origin; const request2 = new Request(origin, opts, handler2); this[kQueue].push(request2); if (this[kResuming]) { } else if (util2.bodyLength(request2.body) == null && util2.isIterable(request2.body)) { this[kResuming] = 1; queueMicrotask(() => resume(this)); } else { this[kResume](true); } if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { this[kNeedDrain] = 2; } return this[kNeedDrain] < 2; } async [kClose]() { return new Promise((resolve) => { if (this[kSize]) { this[kClosedResolve] = resolve; } else { resolve(null); } }); } async [kDestroy](err) { return new Promise((resolve) => { const requests = this[kQueue].splice(this[kPendingIdx]); for (let i = 0; i < requests.length; i++) { const request2 = requests[i]; util2.errorRequest(this, request2, err); } const callback = () => { if (this[kClosedResolve]) { this[kClosedResolve](); this[kClosedResolve] = null; } resolve(null); }; if (this[kHTTPContext]) { this[kHTTPContext].destroy(err, callback); this[kHTTPContext] = null; } else { queueMicrotask(callback); } this[kResume](); }); } }; var createRedirectInterceptor = require_redirect_interceptor(); function onError(client, err) { if (client[kRunning] === 0 && err.code !== "UND_ERR_INFO" && err.code !== "UND_ERR_SOCKET") { assert(client[kPendingIdx] === client[kRunningIdx]); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i = 0; i < requests.length; i++) { const request2 = requests[i]; util2.errorRequest(client, request2, err); } assert(client[kSize] === 0); } } async function connect(client) { assert(!client[kConnecting]); assert(!client[kHTTPContext]); let { host, hostname, protocol, port } = client[kUrl]; if (hostname[0] === "[") { const idx = hostname.indexOf("]"); assert(idx !== -1); const ip = hostname.substring(1, idx); assert(net.isIP(ip)); hostname = ip; } client[kConnecting] = true; if (channels.beforeConnect.hasSubscribers) { channels.beforeConnect.publish({ connectParams: { host, hostname, protocol, port, version: client[kHTTPContext]?.version, servername: client[kServerName], localAddress: client[kLocalAddress] }, connector: client[kConnector] }); } try { const socket = await new Promise((resolve, reject) => { client[kConnector]({ host, hostname, protocol, port, servername: client[kServerName], localAddress: client[kLocalAddress] }, (err, socket2) => { if (err) { reject(err); } else { resolve(socket2); } }); }); if (client.destroyed) { util2.destroy(socket.on("error", noop2), new ClientDestroyedError()); return; } assert(socket); try { client[kHTTPContext] = socket.alpnProtocol === "h2" ? await connectH2(client, socket) : await connectH1(client, socket); } catch (err) { socket.destroy().on("error", noop2); throw err; } client[kConnecting] = false; socket[kCounter] = 0; socket[kMaxRequests] = client[kMaxRequests]; socket[kClient] = client; socket[kError] = null; if (channels.connected.hasSubscribers) { channels.connected.publish({ connectParams: { host, hostname, protocol, port, version: client[kHTTPContext]?.version, servername: client[kServerName], localAddress: client[kLocalAddress] }, connector: client[kConnector], socket }); } client.emit("connect", client[kUrl], [client]); } catch (err) { if (client.destroyed) { return; } client[kConnecting] = false; if (channels.connectError.hasSubscribers) { channels.connectError.publish({ connectParams: { host, hostname, protocol, port, version: client[kHTTPContext]?.version, servername: client[kServerName], localAddress: client[kLocalAddress] }, connector: client[kConnector], error: err }); } if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") { assert(client[kRunning] === 0); while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { const request2 = client[kQueue][client[kPendingIdx]++]; util2.errorRequest(client, request2, err); } } else { onError(client, err); } client.emit("connectionError", client[kUrl], [client], err); } client[kResume](); } function emitDrain(client) { client[kNeedDrain] = 0; client.emit("drain", client[kUrl], [client]); } function resume(client, sync) { if (client[kResuming] === 2) { return; } client[kResuming] = 2; _resume(client, sync); client[kResuming] = 0; if (client[kRunningIdx] > 256) { client[kQueue].splice(0, client[kRunningIdx]); client[kPendingIdx] -= client[kRunningIdx]; client[kRunningIdx] = 0; } } function _resume(client, sync) { while (true) { if (client.destroyed) { assert(client[kPending] === 0); return; } if (client[kClosedResolve] && !client[kSize]) { client[kClosedResolve](); client[kClosedResolve] = null; return; } if (client[kHTTPContext]) { client[kHTTPContext].resume(); } if (client[kBusy]) { client[kNeedDrain] = 2; } else if (client[kNeedDrain] === 2) { if (sync) { client[kNeedDrain] = 1; queueMicrotask(() => emitDrain(client)); } else { emitDrain(client); } continue; } if (client[kPending] === 0) { return; } if (client[kRunning] >= (getPipelining(client) || 1)) { return; } const request2 = client[kQueue][client[kPendingIdx]]; if (client[kUrl].protocol === "https:" && client[kServerName] !== request2.servername) { if (client[kRunning] > 0) { return; } client[kServerName] = request2.servername; client[kHTTPContext]?.destroy(new InformationalError("servername changed"), () => { client[kHTTPContext] = null; resume(client); }); } if (client[kConnecting]) { return; } if (!client[kHTTPContext]) { connect(client); return; } if (client[kHTTPContext].destroyed) { return; } if (client[kHTTPContext].busy(request2)) { return; } if (!request2.aborted && client[kHTTPContext].write(request2)) { client[kPendingIdx]++; } else { client[kQueue].splice(client[kPendingIdx], 1); } } } module2.exports = Client; } }); // node_modules/undici/lib/dispatcher/fixed-queue.js var require_fixed_queue = __commonJS({ "node_modules/undici/lib/dispatcher/fixed-queue.js"(exports2, module2) { "use strict"; var kSize = 2048; var kMask = kSize - 1; var FixedCircularBuffer = class { constructor() { this.bottom = 0; this.top = 0; this.list = new Array(kSize); this.next = null; } isEmpty() { return this.top === this.bottom; } isFull() { return (this.top + 1 & kMask) === this.bottom; } push(data) { this.list[this.top] = data; this.top = this.top + 1 & kMask; } shift() { const nextItem = this.list[this.bottom]; if (nextItem === void 0) return null; this.list[this.bottom] = void 0; this.bottom = this.bottom + 1 & kMask; return nextItem; } }; module2.exports = class FixedQueue { constructor() { this.head = this.tail = new FixedCircularBuffer(); } isEmpty() { return this.head.isEmpty(); } push(data) { if (this.head.isFull()) { this.head = this.head.next = new FixedCircularBuffer(); } this.head.push(data); } shift() { const tail = this.tail; const next = tail.shift(); if (tail.isEmpty() && tail.next !== null) { this.tail = tail.next; } return next; } }; } }); // node_modules/undici/lib/dispatcher/pool-stats.js var require_pool_stats = __commonJS({ "node_modules/undici/lib/dispatcher/pool-stats.js"(exports2, module2) { var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols(); var kPool = /* @__PURE__ */ Symbol("pool"); var PoolStats = class { constructor(pool) { this[kPool] = pool; } get connected() { return this[kPool][kConnected]; } get free() { return this[kPool][kFree]; } get pending() { return this[kPool][kPending]; } get queued() { return this[kPool][kQueued]; } get running() { return this[kPool][kRunning]; } get size() { return this[kPool][kSize]; } }; module2.exports = PoolStats; } }); // node_modules/undici/lib/dispatcher/pool-base.js var require_pool_base = __commonJS({ "node_modules/undici/lib/dispatcher/pool-base.js"(exports2, module2) { "use strict"; var DispatcherBase = require_dispatcher_base(); var FixedQueue = require_fixed_queue(); var { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require_symbols(); var PoolStats = require_pool_stats(); var kClients = /* @__PURE__ */ Symbol("clients"); var kNeedDrain = /* @__PURE__ */ Symbol("needDrain"); var kQueue = /* @__PURE__ */ Symbol("queue"); var kClosedResolve = /* @__PURE__ */ Symbol("closed resolve"); var kOnDrain = /* @__PURE__ */ Symbol("onDrain"); var kOnConnect = /* @__PURE__ */ Symbol("onConnect"); var kOnDisconnect = /* @__PURE__ */ Symbol("onDisconnect"); var kOnConnectionError = /* @__PURE__ */ Symbol("onConnectionError"); var kGetDispatcher = /* @__PURE__ */ Symbol("get dispatcher"); var kAddClient = /* @__PURE__ */ Symbol("add client"); var kRemoveClient = /* @__PURE__ */ Symbol("remove client"); var kStats = /* @__PURE__ */ Symbol("stats"); var PoolBase = class extends DispatcherBase { constructor() { super(); this[kQueue] = new FixedQueue(); this[kClients] = []; this[kQueued] = 0; const pool = this; this[kOnDrain] = function onDrain(origin, targets) { const queue = pool[kQueue]; let needDrain = false; while (!needDrain) { const item = queue.shift(); if (!item) { break; } pool[kQueued]--; needDrain = !this.dispatch(item.opts, item.handler); } this[kNeedDrain] = needDrain; if (!this[kNeedDrain] && pool[kNeedDrain]) { pool[kNeedDrain] = false; pool.emit("drain", origin, [pool, ...targets]); } if (pool[kClosedResolve] && queue.isEmpty()) { Promise.all(pool[kClients].map((c) => c.close())).then(pool[kClosedResolve]); } }; this[kOnConnect] = (origin, targets) => { pool.emit("connect", origin, [pool, ...targets]); }; this[kOnDisconnect] = (origin, targets, err) => { pool.emit("disconnect", origin, [pool, ...targets], err); }; this[kOnConnectionError] = (origin, targets, err) => { pool.emit("connectionError", origin, [pool, ...targets], err); }; this[kStats] = new PoolStats(this); } get [kBusy]() { return this[kNeedDrain]; } get [kConnected]() { return this[kClients].filter((client) => client[kConnected]).length; } get [kFree]() { return this[kClients].filter((client) => client[kConnected] && !client[kNeedDrain]).length; } get [kPending]() { let ret = this[kQueued]; for (const { [kPending]: pending } of this[kClients]) { ret += pending; } return ret; } get [kRunning]() { let ret = 0; for (const { [kRunning]: running } of this[kClients]) { ret += running; } return ret; } get [kSize]() { let ret = this[kQueued]; for (const { [kSize]: size } of this[kClients]) { ret += size; } return ret; } get stats() { return this[kStats]; } async [kClose]() { if (this[kQueue].isEmpty()) { await Promise.all(this[kClients].map((c) => c.close())); } else { await new Promise((resolve) => { this[kClosedResolve] = resolve; }); } } async [kDestroy](err) { while (true) { const item = this[kQueue].shift(); if (!item) { break; } item.handler.onError(err); } await Promise.all(this[kClients].map((c) => c.destroy(err))); } [kDispatch](opts, handler2) { const dispatcher = this[kGetDispatcher](); if (!dispatcher) { this[kNeedDrain] = true; this[kQueue].push({ opts, handler: handler2 }); this[kQueued]++; } else if (!dispatcher.dispatch(opts, handler2)) { dispatcher[kNeedDrain] = true; this[kNeedDrain] = !this[kGetDispatcher](); } return !this[kNeedDrain]; } [kAddClient](client) { client.on("drain", this[kOnDrain]).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]); this[kClients].push(client); if (this[kNeedDrain]) { queueMicrotask(() => { if (this[kNeedDrain]) { this[kOnDrain](client[kUrl], [this, client]); } }); } return this; } [kRemoveClient](client) { client.close(() => { const idx = this[kClients].indexOf(client); if (idx !== -1) { this[kClients].splice(idx, 1); } }); this[kNeedDrain] = this[kClients].some((dispatcher) => !dispatcher[kNeedDrain] && dispatcher.closed !== true && dispatcher.destroyed !== true); } }; module2.exports = { PoolBase, kClients, kNeedDrain, kAddClient, kRemoveClient, kGetDispatcher }; } }); // node_modules/undici/lib/dispatcher/pool.js var require_pool = __commonJS({ "node_modules/undici/lib/dispatcher/pool.js"(exports2, module2) { "use strict"; var { PoolBase, kClients, kNeedDrain, kAddClient, kGetDispatcher } = require_pool_base(); var Client = require_client(); var { InvalidArgumentError } = require_errors(); var util2 = require_util(); var { kUrl, kInterceptors } = require_symbols(); var buildConnector = require_connect(); var kOptions = /* @__PURE__ */ Symbol("options"); var kConnections = /* @__PURE__ */ Symbol("connections"); var kFactory = /* @__PURE__ */ Symbol("factory"); function defaultFactory(origin, opts) { return new Client(origin, opts); } var Pool = class extends PoolBase { constructor(origin, { connections, factory = defaultFactory, connect, connectTimeout, tls, maxCachedSessions, socketPath, autoSelectFamily, autoSelectFamilyAttemptTimeout, allowH2, ...options } = {}) { super(); if (connections != null && (!Number.isFinite(connections) || connections < 0)) { throw new InvalidArgumentError("invalid connections"); } if (typeof factory !== "function") { throw new InvalidArgumentError("factory must be a function."); } if (connect != null && typeof connect !== "function" && typeof connect !== "object") { throw new InvalidArgumentError("connect must be a function or an object"); } if (typeof connect !== "function") { connect = buildConnector({ ...tls, maxCachedSessions, allowH2, socketPath, timeout: connectTimeout, ...autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, ...connect }); } this[kInterceptors] = options.interceptors?.Pool && Array.isArray(options.interceptors.Pool) ? options.interceptors.Pool : []; this[kConnections] = connections || null; this[kUrl] = util2.parseOrigin(origin); this[kOptions] = { ...util2.deepClone(options), connect, allowH2 }; this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; this[kFactory] = factory; this.on("connectionError", (origin2, targets, error) => { for (const target of targets) { const idx = this[kClients].indexOf(target); if (idx !== -1) { this[kClients].splice(idx, 1); } } }); } [kGetDispatcher]() { for (const client of this[kClients]) { if (!client[kNeedDrain]) { return client; } } if (!this[kConnections] || this[kClients].length < this[kConnections]) { const dispatcher = this[kFactory](this[kUrl], this[kOptions]); this[kAddClient](dispatcher); return dispatcher; } } }; module2.exports = Pool; } }); // node_modules/undici/lib/dispatcher/balanced-pool.js var require_balanced_pool = __commonJS({ "node_modules/undici/lib/dispatcher/balanced-pool.js"(exports2, module2) { "use strict"; var { BalancedPoolMissingUpstreamError, InvalidArgumentError } = require_errors(); var { PoolBase, kClients, kNeedDrain, kAddClient, kRemoveClient, kGetDispatcher } = require_pool_base(); var Pool = require_pool(); var { kUrl, kInterceptors } = require_symbols(); var { parseOrigin } = require_util(); var kFactory = /* @__PURE__ */ Symbol("factory"); var kOptions = /* @__PURE__ */ Symbol("options"); var kGreatestCommonDivisor = /* @__PURE__ */ Symbol("kGreatestCommonDivisor"); var kCurrentWeight = /* @__PURE__ */ Symbol("kCurrentWeight"); var kIndex = /* @__PURE__ */ Symbol("kIndex"); var kWeight = /* @__PURE__ */ Symbol("kWeight"); var kMaxWeightPerServer = /* @__PURE__ */ Symbol("kMaxWeightPerServer"); var kErrorPenalty = /* @__PURE__ */ Symbol("kErrorPenalty"); function getGreatestCommonDivisor(a, b) { if (a === 0) return b; while (b !== 0) { const t = b; b = a % b; a = t; } return a; } function defaultFactory(origin, opts) { return new Pool(origin, opts); } var BalancedPool = class extends PoolBase { constructor(upstreams = [], { factory = defaultFactory, ...opts } = {}) { super(); this[kOptions] = opts; this[kIndex] = -1; this[kCurrentWeight] = 0; this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100; this[kErrorPenalty] = this[kOptions].errorPenalty || 15; if (!Array.isArray(upstreams)) { upstreams = [upstreams]; } if (typeof factory !== "function") { throw new InvalidArgumentError("factory must be a function."); } this[kInterceptors] = opts.interceptors?.BalancedPool && Array.isArray(opts.interceptors.BalancedPool) ? opts.interceptors.BalancedPool : []; this[kFactory] = factory; for (const upstream of upstreams) { this.addUpstream(upstream); } this._updateBalancedPoolStats(); } addUpstream(upstream) { const upstreamOrigin = parseOrigin(upstream).origin; if (this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true)) { return this; } const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions])); this[kAddClient](pool); pool.on("connect", () => { pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]); }); pool.on("connectionError", () => { pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); this._updateBalancedPoolStats(); }); pool.on("disconnect", (...args) => { const err = args[2]; if (err && err.code === "UND_ERR_SOCKET") { pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); this._updateBalancedPoolStats(); } }); for (const client of this[kClients]) { client[kWeight] = this[kMaxWeightPerServer]; } this._updateBalancedPoolStats(); return this; } _updateBalancedPoolStats() { let result = 0; for (let i = 0; i < this[kClients].length; i++) { result = getGreatestCommonDivisor(this[kClients][i][kWeight], result); } this[kGreatestCommonDivisor] = result; } removeUpstream(upstream) { const upstreamOrigin = parseOrigin(upstream).origin; const pool = this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true); if (pool) { this[kRemoveClient](pool); } return this; } get upstreams() { return this[kClients].filter((dispatcher) => dispatcher.closed !== true && dispatcher.destroyed !== true).map((p) => p[kUrl].origin); } [kGetDispatcher]() { if (this[kClients].length === 0) { throw new BalancedPoolMissingUpstreamError(); } const dispatcher = this[kClients].find((dispatcher2) => !dispatcher2[kNeedDrain] && dispatcher2.closed !== true && dispatcher2.destroyed !== true); if (!dispatcher) { return; } const allClientsBusy = this[kClients].map((pool) => pool[kNeedDrain]).reduce((a, b) => a && b, true); if (allClientsBusy) { return; } let counter = 0; let maxWeightIndex = this[kClients].findIndex((pool) => !pool[kNeedDrain]); while (counter++ < this[kClients].length) { this[kIndex] = (this[kIndex] + 1) % this[kClients].length; const pool = this[kClients][this[kIndex]]; if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) { maxWeightIndex = this[kIndex]; } if (this[kIndex] === 0) { this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]; if (this[kCurrentWeight] <= 0) { this[kCurrentWeight] = this[kMaxWeightPerServer]; } } if (pool[kWeight] >= this[kCurrentWeight] && !pool[kNeedDrain]) { return pool; } } this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]; this[kIndex] = maxWeightIndex; return this[kClients][maxWeightIndex]; } }; module2.exports = BalancedPool; } }); // node_modules/undici/lib/dispatcher/agent.js var require_agent = __commonJS({ "node_modules/undici/lib/dispatcher/agent.js"(exports2, module2) { "use strict"; var { InvalidArgumentError } = require_errors(); var { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(); var DispatcherBase = require_dispatcher_base(); var Pool = require_pool(); var Client = require_client(); var util2 = require_util(); var createRedirectInterceptor = require_redirect_interceptor(); var kOnConnect = /* @__PURE__ */ Symbol("onConnect"); var kOnDisconnect = /* @__PURE__ */ Symbol("onDisconnect"); var kOnConnectionError = /* @__PURE__ */ Symbol("onConnectionError"); var kMaxRedirections = /* @__PURE__ */ Symbol("maxRedirections"); var kOnDrain = /* @__PURE__ */ Symbol("onDrain"); var kFactory = /* @__PURE__ */ Symbol("factory"); var kOptions = /* @__PURE__ */ Symbol("options"); function defaultFactory(origin, opts) { return opts && opts.connections === 1 ? new Client(origin, opts) : new Pool(origin, opts); } var Agent3 = class extends DispatcherBase { constructor({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { super(); if (typeof factory !== "function") { throw new InvalidArgumentError("factory must be a function."); } if (connect != null && typeof connect !== "function" && typeof connect !== "object") { throw new InvalidArgumentError("connect must be a function or an object"); } if (!Number.isInteger(maxRedirections) || maxRedirections < 0) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } if (connect && typeof connect !== "function") { connect = { ...connect }; } this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent) ? options.interceptors.Agent : [createRedirectInterceptor({ maxRedirections })]; this[kOptions] = { ...util2.deepClone(options), connect }; this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; this[kMaxRedirections] = maxRedirections; this[kFactory] = factory; this[kClients] = /* @__PURE__ */ new Map(); this[kOnDrain] = (origin, targets) => { this.emit("drain", origin, [this, ...targets]); }; this[kOnConnect] = (origin, targets) => { this.emit("connect", origin, [this, ...targets]); }; this[kOnDisconnect] = (origin, targets, err) => { this.emit("disconnect", origin, [this, ...targets], err); }; this[kOnConnectionError] = (origin, targets, err) => { this.emit("connectionError", origin, [this, ...targets], err); }; } get [kRunning]() { let ret = 0; for (const client of this[kClients].values()) { ret += client[kRunning]; } return ret; } [kDispatch](opts, handler2) { let key; if (opts.origin && (typeof opts.origin === "string" || opts.origin instanceof URL)) { key = String(opts.origin); } else { throw new InvalidArgumentError("opts.origin must be a non-empty string or URL."); } let dispatcher = this[kClients].get(key); if (!dispatcher) { dispatcher = this[kFactory](opts.origin, this[kOptions]).on("drain", this[kOnDrain]).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]); this[kClients].set(key, dispatcher); } return dispatcher.dispatch(opts, handler2); } async [kClose]() { const closePromises = []; for (const client of this[kClients].values()) { closePromises.push(client.close()); } this[kClients].clear(); await Promise.all(closePromises); } async [kDestroy](err) { const destroyPromises = []; for (const client of this[kClients].values()) { destroyPromises.push(client.destroy(err)); } this[kClients].clear(); await Promise.all(destroyPromises); } }; module2.exports = Agent3; } }); // node_modules/undici/lib/dispatcher/proxy-agent.js var require_proxy_agent = __commonJS({ "node_modules/undici/lib/dispatcher/proxy-agent.js"(exports2, module2) { "use strict"; var { kProxy, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(); var { URL: URL2 } = require("node:url"); var Agent3 = require_agent(); var Pool = require_pool(); var DispatcherBase = require_dispatcher_base(); var { InvalidArgumentError, RequestAbortedError, SecureProxyConnectionError } = require_errors(); var buildConnector = require_connect(); var Client = require_client(); var kAgent = /* @__PURE__ */ Symbol("proxy agent"); var kClient = /* @__PURE__ */ Symbol("proxy client"); var kProxyHeaders = /* @__PURE__ */ Symbol("proxy headers"); var kRequestTls = /* @__PURE__ */ Symbol("request tls settings"); var kProxyTls = /* @__PURE__ */ Symbol("proxy tls settings"); var kConnectEndpoint = /* @__PURE__ */ Symbol("connect endpoint function"); var kTunnelProxy = /* @__PURE__ */ Symbol("tunnel proxy"); function defaultProtocolPort(protocol) { return protocol === "https:" ? 443 : 80; } function defaultFactory(origin, opts) { return new Pool(origin, opts); } var noop2 = () => { }; function defaultAgentFactory(origin, opts) { if (opts.connections === 1) { return new Client(origin, opts); } return new Pool(origin, opts); } var Http1ProxyWrapper = class extends DispatcherBase { #client; constructor(proxyUrl, { headers = {}, connect, factory }) { super(); if (!proxyUrl) { throw new InvalidArgumentError("Proxy URL is mandatory"); } this[kProxyHeaders] = headers; if (factory) { this.#client = factory(proxyUrl, { connect }); } else { this.#client = new Client(proxyUrl, { connect }); } } [kDispatch](opts, handler2) { const onHeaders = handler2.onHeaders; handler2.onHeaders = function(statusCode, data, resume) { if (statusCode === 407) { if (typeof handler2.onError === "function") { handler2.onError(new InvalidArgumentError("Proxy Authentication Required (407)")); } return; } if (onHeaders) onHeaders.call(this, statusCode, data, resume); }; const { origin, path: path2 = "/", headers = {} } = opts; opts.path = origin + path2; if (!("host" in headers) && !("Host" in headers)) { const { host } = new URL2(origin); headers.host = host; } opts.headers = { ...this[kProxyHeaders], ...headers }; return this.#client[kDispatch](opts, handler2); } async [kClose]() { return this.#client.close(); } async [kDestroy](err) { return this.#client.destroy(err); } }; var ProxyAgent2 = class extends DispatcherBase { constructor(opts) { super(); if (!opts || typeof opts === "object" && !(opts instanceof URL2) && !opts.uri) { throw new InvalidArgumentError("Proxy uri is mandatory"); } const { clientFactory = defaultFactory } = opts; if (typeof clientFactory !== "function") { throw new InvalidArgumentError("Proxy opts.clientFactory must be a function."); } const { proxyTunnel = true } = opts; const url = this.#getUrl(opts); const { href, origin, port, protocol, username, password, hostname: proxyHostname } = url; this[kProxy] = { uri: href, protocol }; this[kInterceptors] = opts.interceptors?.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) ? opts.interceptors.ProxyAgent : []; this[kRequestTls] = opts.requestTls; this[kProxyTls] = opts.proxyTls; this[kProxyHeaders] = opts.headers || {}; this[kTunnelProxy] = proxyTunnel; if (opts.auth && opts.token) { throw new InvalidArgumentError("opts.auth cannot be used in combination with opts.token"); } else if (opts.auth) { this[kProxyHeaders]["proxy-authorization"] = `Basic ${opts.auth}`; } else if (opts.token) { this[kProxyHeaders]["proxy-authorization"] = opts.token; } else if (username && password) { this[kProxyHeaders]["proxy-authorization"] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString("base64")}`; } const connect = buildConnector({ ...opts.proxyTls }); this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }); const agentFactory = opts.factory || defaultAgentFactory; const factory = (origin2, options) => { const { protocol: protocol2 } = new URL2(origin2); if (!this[kTunnelProxy] && protocol2 === "http:" && this[kProxy].protocol === "http:") { return new Http1ProxyWrapper(this[kProxy].uri, { headers: this[kProxyHeaders], connect, factory: agentFactory }); } return agentFactory(origin2, options); }; this[kClient] = clientFactory(url, { connect }); this[kAgent] = new Agent3({ ...opts, factory, connect: async (opts2, callback) => { let requestedPath = opts2.host; if (!opts2.port) { requestedPath += `:${defaultProtocolPort(opts2.protocol)}`; } try { const { socket, statusCode } = await this[kClient].connect({ origin, port, path: requestedPath, signal: opts2.signal, headers: { ...this[kProxyHeaders], host: opts2.host }, servername: this[kProxyTls]?.servername || proxyHostname }); if (statusCode !== 200) { socket.on("error", noop2).destroy(); callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`)); } if (opts2.protocol !== "https:") { callback(null, socket); return; } let servername; if (this[kRequestTls]) { servername = this[kRequestTls].servername; } else { servername = opts2.servername; } this[kConnectEndpoint]({ ...opts2, servername, httpSocket: socket }, callback); } catch (err) { if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") { callback(new SecureProxyConnectionError(err)); } else { callback(err); } } } }); } dispatch(opts, handler2) { const headers = buildHeaders(opts.headers); throwIfProxyAuthIsSent(headers); if (headers && !("host" in headers) && !("Host" in headers)) { const { host } = new URL2(opts.origin); headers.host = host; } return this[kAgent].dispatch( { ...opts, headers }, handler2 ); } /** * @param {import('../types/proxy-agent').ProxyAgent.Options | string | URL} opts * @returns {URL} */ #getUrl(opts) { if (typeof opts === "string") { return new URL2(opts); } else if (opts instanceof URL2) { return opts; } else { return new URL2(opts.uri); } } async [kClose]() { await this[kAgent].close(); await this[kClient].close(); } async [kDestroy]() { await this[kAgent].destroy(); await this[kClient].destroy(); } }; function buildHeaders(headers) { if (Array.isArray(headers)) { const headersPair = {}; for (let i = 0; i < headers.length; i += 2) { headersPair[headers[i]] = headers[i + 1]; } return headersPair; } return headers; } function throwIfProxyAuthIsSent(headers) { const existProxyAuth = headers && Object.keys(headers).find((key) => key.toLowerCase() === "proxy-authorization"); if (existProxyAuth) { throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor"); } } module2.exports = ProxyAgent2; } }); // node_modules/undici/lib/dispatcher/env-http-proxy-agent.js var require_env_http_proxy_agent = __commonJS({ "node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"(exports2, module2) { "use strict"; var DispatcherBase = require_dispatcher_base(); var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols(); var ProxyAgent2 = require_proxy_agent(); var Agent3 = require_agent(); var DEFAULT_PORTS = { "http:": 80, "https:": 443 }; var experimentalWarned = false; var EnvHttpProxyAgent = class extends DispatcherBase { #noProxyValue = null; #noProxyEntries = null; #opts = null; constructor(opts = {}) { super(); this.#opts = opts; if (!experimentalWarned) { experimentalWarned = true; process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.", { code: "UNDICI-EHPA" }); } const { httpProxy, httpsProxy, noProxy, ...agentOpts } = opts; this[kNoProxyAgent] = new Agent3(agentOpts); const HTTP_PROXY = httpProxy ?? process.env.http_proxy ?? process.env.HTTP_PROXY; if (HTTP_PROXY) { this[kHttpProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTP_PROXY }); } else { this[kHttpProxyAgent] = this[kNoProxyAgent]; } const HTTPS_PROXY = httpsProxy ?? process.env.https_proxy ?? process.env.HTTPS_PROXY; if (HTTPS_PROXY) { this[kHttpsProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTPS_PROXY }); } else { this[kHttpsProxyAgent] = this[kHttpProxyAgent]; } this.#parseNoProxy(); } [kDispatch](opts, handler2) { const url = new URL(opts.origin); const agent = this.#getProxyAgentForUrl(url); return agent.dispatch(opts, handler2); } async [kClose]() { await this[kNoProxyAgent].close(); if (!this[kHttpProxyAgent][kClosed]) { await this[kHttpProxyAgent].close(); } if (!this[kHttpsProxyAgent][kClosed]) { await this[kHttpsProxyAgent].close(); } } async [kDestroy](err) { await this[kNoProxyAgent].destroy(err); if (!this[kHttpProxyAgent][kDestroyed]) { await this[kHttpProxyAgent].destroy(err); } if (!this[kHttpsProxyAgent][kDestroyed]) { await this[kHttpsProxyAgent].destroy(err); } } #getProxyAgentForUrl(url) { let { protocol, host: hostname, port } = url; hostname = hostname.replace(/:\d*$/, "").toLowerCase(); port = Number.parseInt(port, 10) || DEFAULT_PORTS[protocol] || 0; if (!this.#shouldProxy(hostname, port)) { return this[kNoProxyAgent]; } if (protocol === "https:") { return this[kHttpsProxyAgent]; } return this[kHttpProxyAgent]; } #shouldProxy(hostname, port) { if (this.#noProxyChanged) { this.#parseNoProxy(); } if (this.#noProxyEntries.length === 0) { return true; } if (this.#noProxyValue === "*") { return false; } for (let i = 0; i < this.#noProxyEntries.length; i++) { const entry = this.#noProxyEntries[i]; if (entry.port && entry.port !== port) { continue; } if (!/^[.*]/.test(entry.hostname)) { if (hostname === entry.hostname) { return false; } } else { if (hostname.endsWith(entry.hostname.replace(/^\*/, ""))) { return false; } } } return true; } #parseNoProxy() { const noProxyValue = this.#opts.noProxy ?? this.#noProxyEnv; const noProxySplit = noProxyValue.split(/[,\s]/); const noProxyEntries = []; for (let i = 0; i < noProxySplit.length; i++) { const entry = noProxySplit[i]; if (!entry) { continue; } const parsed = entry.match(/^(.+):(\d+)$/); noProxyEntries.push({ hostname: (parsed ? parsed[1] : entry).toLowerCase(), port: parsed ? Number.parseInt(parsed[2], 10) : 0 }); } this.#noProxyValue = noProxyValue; this.#noProxyEntries = noProxyEntries; } get #noProxyChanged() { if (this.#opts.noProxy !== void 0) { return false; } return this.#noProxyValue !== this.#noProxyEnv; } get #noProxyEnv() { return process.env.no_proxy ?? process.env.NO_PROXY ?? ""; } }; module2.exports = EnvHttpProxyAgent; } }); // node_modules/undici/lib/handler/retry-handler.js var require_retry_handler = __commonJS({ "node_modules/undici/lib/handler/retry-handler.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { kRetryHandlerDefaultRetry } = require_symbols(); var { RequestRetryError } = require_errors(); var { isDisturbed, parseHeaders, parseRangeHeader, wrapRequestBody } = require_util(); function calculateRetryAfterHeader(retryAfter) { const current = Date.now(); return new Date(retryAfter).getTime() - current; } var RetryHandler = class _RetryHandler { constructor(opts, handlers) { const { retryOptions, ...dispatchOpts } = opts; const { // Retry scoped retry: retryFn, maxRetries, maxTimeout, minTimeout, timeoutFactor, // Response scoped methods, errorCodes, retryAfter, statusCodes } = retryOptions ?? {}; this.dispatch = handlers.dispatch; this.handler = handlers.handler; this.opts = { ...dispatchOpts, body: wrapRequestBody(opts.body) }; this.abort = null; this.aborted = false; this.retryOpts = { retry: retryFn ?? _RetryHandler[kRetryHandlerDefaultRetry], retryAfter: retryAfter ?? true, maxTimeout: maxTimeout ?? 30 * 1e3, // 30s, minTimeout: minTimeout ?? 500, // .5s timeoutFactor: timeoutFactor ?? 2, maxRetries: maxRetries ?? 5, // What errors we should retry methods: methods ?? ["GET", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE"], // Indicates which errors to retry statusCodes: statusCodes ?? [500, 502, 503, 504, 429], // List of errors to retry errorCodes: errorCodes ?? [ "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((reason) => { this.aborted = true; if (this.abort) { this.abort(reason); } else { this.reason = reason; } }); } onRequestSent() { if (this.handler.onRequestSent) { this.handler.onRequestSent(); } } onUpgrade(statusCode, headers, socket) { if (this.handler.onUpgrade) { this.handler.onUpgrade(statusCode, headers, socket); } } onConnect(abort) { if (this.aborted) { abort(this.reason); } else { this.abort = abort; } } onBodySent(chunk) { if (this.handler.onBodySent) return this.handler.onBodySent(chunk); } static [kRetryHandlerDefaultRetry](err, { state, opts }, cb) { const { statusCode, code, headers } = err; const { method, retryOptions } = opts; const { maxRetries, minTimeout, maxTimeout, timeoutFactor, statusCodes, errorCodes, methods } = retryOptions; const { counter } = state; if (code && code !== "UND_ERR_REQ_RETRY" && !errorCodes.includes(code)) { cb(err); return; } if (Array.isArray(methods) && !methods.includes(method)) { cb(err); return; } if (statusCode != null && Array.isArray(statusCodes) && !statusCodes.includes(statusCode)) { cb(err); return; } if (counter > maxRetries) { cb(err); return; } let retryAfterHeader = headers?.["retry-after"]; if (retryAfterHeader) { retryAfterHeader = Number(retryAfterHeader); retryAfterHeader = Number.isNaN(retryAfterHeader) ? calculateRetryAfterHeader(retryAfterHeader) : retryAfterHeader * 1e3; } const retryTimeout = retryAfterHeader > 0 ? Math.min(retryAfterHeader, maxTimeout) : Math.min(minTimeout * timeoutFactor ** (counter - 1), maxTimeout); setTimeout(() => cb(null), retryTimeout); } onHeaders(statusCode, rawHeaders, resume, statusMessage) { const headers = parseHeaders(rawHeaders); this.retryCount += 1; if (statusCode >= 300) { if (this.retryOpts.statusCodes.includes(statusCode) === false) { return this.handler.onHeaders( statusCode, rawHeaders, resume, statusMessage ); } else { this.abort( new RequestRetryError("Request failed", statusCode, { headers, data: { count: this.retryCount } }) ); return false; } } if (this.resume != null) { this.resume = null; if (statusCode !== 206 && (this.start > 0 || statusCode !== 200)) { this.abort( new RequestRetryError("server does not support the range header and the payload was partially consumed", statusCode, { headers, data: { count: this.retryCount } }) ); return false; } const contentRange = parseRangeHeader(headers["content-range"]); if (!contentRange) { this.abort( new RequestRetryError("Content-Range mismatch", statusCode, { headers, data: { count: this.retryCount } }) ); return false; } if (this.etag != null && this.etag !== headers.etag) { this.abort( new RequestRetryError("ETag mismatch", statusCode, { headers, data: { count: this.retryCount } }) ); return false; } const { start, size, end = size - 1 } = contentRange; assert(this.start === start, "content-range mismatch"); assert(this.end == null || this.end === end, "content-range mismatch"); this.resume = resume; return true; } if (this.end == null) { if (statusCode === 206) { const range = parseRangeHeader(headers["content-range"]); if (range == null) { return this.handler.onHeaders( statusCode, rawHeaders, resume, statusMessage ); } const { start, size, end = size - 1 } = range; assert( start != null && Number.isFinite(start), "content-range mismatch" ); assert(end != null && Number.isFinite(end), "invalid content-length"); this.start = start; this.end = end; } if (this.end == null) { const contentLength = headers["content-length"]; this.end = contentLength != null ? Number(contentLength) - 1 : null; } assert(Number.isFinite(this.start)); assert( this.end == null || Number.isFinite(this.end), "invalid content-length" ); this.resume = resume; this.etag = headers.etag != null ? headers.etag : null; if (this.etag != null && this.etag.startsWith("W/")) { this.etag = null; } return this.handler.onHeaders( statusCode, rawHeaders, resume, statusMessage ); } const err = new RequestRetryError("Request failed", statusCode, { headers, data: { count: this.retryCount } }); this.abort(err); return false; } onData(chunk) { this.start += chunk.length; return this.handler.onData(chunk); } onComplete(rawTrailers) { this.retryCount = 0; return this.handler.onComplete(rawTrailers); } onError(err) { if (this.aborted || isDisturbed(this.opts.body)) { return this.handler.onError(err); } if (this.retryCount - this.retryCountCheckpoint > 0) { this.retryCount = this.retryCountCheckpoint + (this.retryCount - this.retryCountCheckpoint); } else { this.retryCount += 1; } this.retryOpts.retry( err, { state: { counter: this.retryCount }, opts: { retryOptions: this.retryOpts, ...this.opts } }, onRetry.bind(this) ); function onRetry(err2) { if (err2 != null || this.aborted || isDisturbed(this.opts.body)) { return this.handler.onError(err2); } if (this.start !== 0) { const headers = { range: `bytes=${this.start}-${this.end ?? ""}` }; if (this.etag != null) { headers["if-match"] = this.etag; } this.opts = { ...this.opts, headers: { ...this.opts.headers, ...headers } }; } try { this.retryCountCheckpoint = this.retryCount; this.dispatch(this.opts, this); } catch (err3) { this.handler.onError(err3); } } } }; module2.exports = RetryHandler; } }); // node_modules/undici/lib/dispatcher/retry-agent.js var require_retry_agent = __commonJS({ "node_modules/undici/lib/dispatcher/retry-agent.js"(exports2, module2) { "use strict"; var Dispatcher = require_dispatcher(); var RetryHandler = require_retry_handler(); var RetryAgent = class extends Dispatcher { #agent = null; #options = null; constructor(agent, options = {}) { super(options); this.#agent = agent; this.#options = options; } dispatch(opts, handler2) { const retry = new RetryHandler({ ...opts, retryOptions: this.#options }, { dispatch: this.#agent.dispatch.bind(this.#agent), handler: handler2 }); return this.#agent.dispatch(opts, retry); } close() { return this.#agent.close(); } destroy() { return this.#agent.destroy(); } }; module2.exports = RetryAgent; } }); // node_modules/undici/lib/api/readable.js var require_readable = __commonJS({ "node_modules/undici/lib/api/readable.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { Readable } = require("node:stream"); var { RequestAbortedError, NotSupportedError, InvalidArgumentError, AbortError } = require_errors(); var util2 = require_util(); var { ReadableStreamFrom } = require_util(); var kConsume = /* @__PURE__ */ Symbol("kConsume"); var kReading = /* @__PURE__ */ Symbol("kReading"); var kBody = /* @__PURE__ */ Symbol("kBody"); var kAbort = /* @__PURE__ */ Symbol("kAbort"); var kContentType = /* @__PURE__ */ Symbol("kContentType"); var kContentLength = /* @__PURE__ */ Symbol("kContentLength"); var noop2 = () => { }; var BodyReadable = class extends Readable { constructor({ resume, abort, contentType = "", contentLength, highWaterMark = 64 * 1024 // Same as nodejs fs streams. }) { super({ autoDestroy: true, read: resume, highWaterMark }); this._readableState.dataEmitted = false; this[kAbort] = abort; this[kConsume] = null; this[kBody] = null; this[kContentType] = contentType; this[kContentLength] = contentLength; this[kReading] = false; } destroy(err) { if (!err && !this._readableState.endEmitted) { err = new RequestAbortedError(); } if (err) { this[kAbort](); } return super.destroy(err); } _destroy(err, callback) { if (!this[kReading]) { setImmediate(() => { callback(err); }); } else { callback(err); } } on(ev, ...args) { if (ev === "data" || ev === "readable") { this[kReading] = true; } return super.on(ev, ...args); } addListener(ev, ...args) { return this.on(ev, ...args); } off(ev, ...args) { const ret = super.off(ev, ...args); if (ev === "data" || ev === "readable") { this[kReading] = this.listenerCount("data") > 0 || this.listenerCount("readable") > 0; } return ret; } removeListener(ev, ...args) { return this.off(ev, ...args); } push(chunk) { if (this[kConsume] && chunk !== null) { consumePush(this[kConsume], chunk); return this[kReading] ? super.push(chunk) : true; } return super.push(chunk); } // https://fetch.spec.whatwg.org/#dom-body-text async text() { return consume(this, "text"); } // https://fetch.spec.whatwg.org/#dom-body-json async json() { return consume(this, "json"); } // https://fetch.spec.whatwg.org/#dom-body-blob async blob() { return consume(this, "blob"); } // https://fetch.spec.whatwg.org/#dom-body-bytes async bytes() { return consume(this, "bytes"); } // https://fetch.spec.whatwg.org/#dom-body-arraybuffer async arrayBuffer() { return consume(this, "arrayBuffer"); } // https://fetch.spec.whatwg.org/#dom-body-formdata async formData() { throw new NotSupportedError(); } // https://fetch.spec.whatwg.org/#dom-body-bodyused get bodyUsed() { return util2.isDisturbed(this); } // https://fetch.spec.whatwg.org/#dom-body-body get body() { if (!this[kBody]) { this[kBody] = ReadableStreamFrom(this); if (this[kConsume]) { this[kBody].getReader(); assert(this[kBody].locked); } } return this[kBody]; } async dump(opts) { let limit = Number.isFinite(opts?.limit) ? opts.limit : 128 * 1024; const signal = opts?.signal; if (signal != null && (typeof signal !== "object" || !("aborted" in signal))) { throw new InvalidArgumentError("signal must be an AbortSignal"); } signal?.throwIfAborted(); if (this._readableState.closeEmitted) { return null; } return await new Promise((resolve, reject) => { if (this[kContentLength] > limit) { this.destroy(new AbortError()); } const onAbort = () => { this.destroy(signal.reason ?? new AbortError()); }; signal?.addEventListener("abort", onAbort); this.on("close", function() { signal?.removeEventListener("abort", onAbort); if (signal?.aborted) { reject(signal.reason ?? new AbortError()); } else { resolve(null); } }).on("error", noop2).on("data", function(chunk) { limit -= chunk.length; if (limit <= 0) { this.destroy(); } }).resume(); }); } }; function isLocked(self) { return self[kBody] && self[kBody].locked === true || self[kConsume]; } function isUnusable(self) { return util2.isDisturbed(self) || isLocked(self); } async function consume(stream2, type) { assert(!stream2[kConsume]); return new Promise((resolve, reject) => { if (isUnusable(stream2)) { const rState = stream2._readableState; if (rState.destroyed && rState.closeEmitted === false) { stream2.on("error", (err) => { reject(err); }).on("close", () => { reject(new TypeError("unusable")); }); } else { reject(rState.errored ?? new TypeError("unusable")); } } else { queueMicrotask(() => { stream2[kConsume] = { type, stream: stream2, resolve, reject, length: 0, body: [] }; stream2.on("error", function(err) { consumeFinish(this[kConsume], err); }).on("close", function() { if (this[kConsume].body !== null) { consumeFinish(this[kConsume], new RequestAbortedError()); } }); consumeStart(stream2[kConsume]); }); } }); } function consumeStart(consume2) { if (consume2.body === null) { return; } const { _readableState: state } = consume2.stream; if (state.bufferIndex) { const start = state.bufferIndex; const end = state.buffer.length; for (let n = start; n < end; n++) { consumePush(consume2, state.buffer[n]); } } else { for (const chunk of state.buffer) { consumePush(consume2, chunk); } } if (state.endEmitted) { consumeEnd(this[kConsume]); } else { consume2.stream.on("end", function() { consumeEnd(this[kConsume]); }); } consume2.stream.resume(); while (consume2.stream.read() != null) { } } function chunksDecode(chunks, length) { if (chunks.length === 0 || length === 0) { return ""; } const buffer = chunks.length === 1 ? chunks[0] : Buffer.concat(chunks, length); const bufferLength = buffer.length; const start = bufferLength > 2 && buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191 ? 3 : 0; return buffer.utf8Slice(start, bufferLength); } function chunksConcat(chunks, length) { if (chunks.length === 0 || length === 0) { return new Uint8Array(0); } if (chunks.length === 1) { return new Uint8Array(chunks[0]); } const buffer = new Uint8Array(Buffer.allocUnsafeSlow(length).buffer); let offset = 0; for (let i = 0; i < chunks.length; ++i) { const chunk = chunks[i]; buffer.set(chunk, offset); offset += chunk.length; } return buffer; } function consumeEnd(consume2) { const { type, body, resolve, stream: stream2, length } = consume2; try { if (type === "text") { resolve(chunksDecode(body, length)); } else if (type === "json") { resolve(JSON.parse(chunksDecode(body, length))); } else if (type === "arrayBuffer") { resolve(chunksConcat(body, length).buffer); } else if (type === "blob") { resolve(new Blob(body, { type: stream2[kContentType] })); } else if (type === "bytes") { resolve(chunksConcat(body, length)); } consumeFinish(consume2); } catch (err) { stream2.destroy(err); } } function consumePush(consume2, chunk) { consume2.length += chunk.length; consume2.body.push(chunk); } function consumeFinish(consume2, err) { if (consume2.body === null) { return; } if (err) { consume2.reject(err); } else { consume2.resolve(); } consume2.type = null; consume2.stream = null; consume2.resolve = null; consume2.reject = null; consume2.length = 0; consume2.body = null; } module2.exports = { Readable: BodyReadable, chunksDecode }; } }); // node_modules/undici/lib/api/util.js var require_util3 = __commonJS({ "node_modules/undici/lib/api/util.js"(exports2, module2) { var assert = require("node:assert"); var { ResponseStatusCodeError } = require_errors(); var { chunksDecode } = require_readable(); var CHUNK_LIMIT = 128 * 1024; async function getResolveErrorBodyCallback({ callback, body, contentType, statusCode, statusMessage, headers }) { assert(body); let chunks = []; let length = 0; try { for await (const chunk of body) { chunks.push(chunk); length += chunk.length; if (length > CHUNK_LIMIT) { chunks = []; length = 0; break; } } } catch { chunks = []; length = 0; } const message = `Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ""}`; if (statusCode === 204 || !contentType || !length) { queueMicrotask(() => callback(new ResponseStatusCodeError(message, statusCode, headers))); return; } const stackTraceLimit = Error.stackTraceLimit; Error.stackTraceLimit = 0; let payload; try { if (isContentTypeApplicationJson(contentType)) { payload = JSON.parse(chunksDecode(chunks, length)); } else if (isContentTypeText(contentType)) { payload = chunksDecode(chunks, length); } } catch { } finally { Error.stackTraceLimit = stackTraceLimit; } queueMicrotask(() => callback(new ResponseStatusCodeError(message, statusCode, headers, payload))); } var isContentTypeApplicationJson = (contentType) => { return contentType.length > 15 && contentType[11] === "/" && contentType[0] === "a" && contentType[1] === "p" && contentType[2] === "p" && contentType[3] === "l" && contentType[4] === "i" && contentType[5] === "c" && contentType[6] === "a" && contentType[7] === "t" && contentType[8] === "i" && contentType[9] === "o" && contentType[10] === "n" && contentType[12] === "j" && contentType[13] === "s" && contentType[14] === "o" && contentType[15] === "n"; }; var isContentTypeText = (contentType) => { return contentType.length > 4 && contentType[4] === "/" && contentType[0] === "t" && contentType[1] === "e" && contentType[2] === "x" && contentType[3] === "t"; }; module2.exports = { getResolveErrorBodyCallback, isContentTypeApplicationJson, isContentTypeText }; } }); // node_modules/undici/lib/api/api-request.js var require_api_request = __commonJS({ "node_modules/undici/lib/api/api-request.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { Readable } = require_readable(); var { InvalidArgumentError, RequestAbortedError } = require_errors(); var util2 = require_util(); var { getResolveErrorBodyCallback } = require_util3(); var { AsyncResource } = require("node:async_hooks"); var RequestHandler = class extends AsyncResource { constructor(opts, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts; try { if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (highWaterMark && (typeof highWaterMark !== "number" || highWaterMark < 0)) { throw new InvalidArgumentError("invalid highWaterMark"); } if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } if (method === "CONNECT") { throw new InvalidArgumentError("invalid method"); } if (onInfo && typeof onInfo !== "function") { throw new InvalidArgumentError("invalid onInfo callback"); } super("UNDICI_REQUEST"); } catch (err) { if (util2.isStream(body)) { util2.destroy(body.on("error", util2.nop), err); } throw err; } this.method = method; this.responseHeaders = responseHeaders || null; this.opaque = opaque || null; this.callback = callback; this.res = null; this.abort = null; this.body = body; this.trailers = {}; this.context = null; this.onInfo = onInfo || null; this.throwOnError = throwOnError; this.highWaterMark = highWaterMark; this.signal = signal; this.reason = null; this.removeAbortListener = null; if (util2.isStream(body)) { body.on("error", (err) => { this.onError(err); }); } if (this.signal) { if (this.signal.aborted) { this.reason = this.signal.reason ?? new RequestAbortedError(); } else { this.removeAbortListener = util2.addAbortListener(this.signal, () => { this.reason = this.signal.reason ?? new RequestAbortedError(); if (this.res) { util2.destroy(this.res.on("error", util2.nop), this.reason); } else if (this.abort) { this.abort(this.reason); } if (this.removeAbortListener) { this.res?.off("close", this.removeAbortListener); this.removeAbortListener(); this.removeAbortListener = null; } }); } } } onConnect(abort, context) { if (this.reason) { abort(this.reason); return; } assert(this.callback); this.abort = abort; this.context = context; } onHeaders(statusCode, rawHeaders, resume, statusMessage) { const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this; const headers = responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); if (statusCode < 200) { if (this.onInfo) { this.onInfo({ statusCode, headers }); } return; } const parsedHeaders = responseHeaders === "raw" ? util2.parseHeaders(rawHeaders) : headers; const contentType = parsedHeaders["content-type"]; const contentLength = parsedHeaders["content-length"]; const res = new Readable({ resume, abort, contentType, contentLength: this.method !== "HEAD" && contentLength ? Number(contentLength) : null, highWaterMark }); if (this.removeAbortListener) { res.on("close", this.removeAbortListener); } this.callback = null; this.res = res; if (callback !== null) { if (this.throwOnError && statusCode >= 400) { this.runInAsyncScope( getResolveErrorBodyCallback, null, { callback, body: res, contentType, statusCode, statusMessage, headers } ); } else { this.runInAsyncScope(callback, null, null, { statusCode, headers, trailers: this.trailers, opaque, body: res, context }); } } } onData(chunk) { return this.res.push(chunk); } onComplete(trailers) { util2.parseHeaders(trailers, this.trailers); this.res.push(null); } onError(err) { const { res, callback, body, opaque } = this; if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err, { opaque }); }); } if (res) { this.res = null; queueMicrotask(() => { util2.destroy(res, err); }); } if (body) { this.body = null; util2.destroy(body, err); } if (this.removeAbortListener) { res?.off("close", this.removeAbortListener); this.removeAbortListener(); this.removeAbortListener = null; } } }; function request2(opts, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { request2.call(this, opts, (err, data) => { return err ? reject(err) : resolve(data); }); }); } try { this.dispatch(opts, new RequestHandler(opts, callback)); } catch (err) { if (typeof callback !== "function") { throw err; } const opaque = opts?.opaque; queueMicrotask(() => callback(err, { opaque })); } } module2.exports = request2; module2.exports.RequestHandler = RequestHandler; } }); // node_modules/undici/lib/api/abort-signal.js var require_abort_signal = __commonJS({ "node_modules/undici/lib/api/abort-signal.js"(exports2, module2) { var { addAbortListener } = require_util(); var { RequestAbortedError } = require_errors(); var kListener = /* @__PURE__ */ Symbol("kListener"); var kSignal = /* @__PURE__ */ Symbol("kSignal"); function abort(self) { if (self.abort) { self.abort(self[kSignal]?.reason); } else { self.reason = self[kSignal]?.reason ?? new RequestAbortedError(); } removeSignal(self); } function addSignal(self, signal) { self.reason = null; self[kSignal] = null; self[kListener] = null; if (!signal) { return; } if (signal.aborted) { abort(self); return; } self[kSignal] = signal; self[kListener] = () => { abort(self); }; addAbortListener(self[kSignal], self[kListener]); } function removeSignal(self) { if (!self[kSignal]) { return; } if ("removeEventListener" in self[kSignal]) { self[kSignal].removeEventListener("abort", self[kListener]); } else { self[kSignal].removeListener("abort", self[kListener]); } self[kSignal] = null; self[kListener] = null; } module2.exports = { addSignal, removeSignal }; } }); // node_modules/undici/lib/api/api-stream.js var require_api_stream = __commonJS({ "node_modules/undici/lib/api/api-stream.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { finished, PassThrough } = require("node:stream"); var { InvalidArgumentError, InvalidReturnValueError } = require_errors(); var util2 = require_util(); var { getResolveErrorBodyCallback } = require_util3(); var { AsyncResource } = require("node:async_hooks"); var { addSignal, removeSignal } = require_abort_signal(); var StreamHandler = class extends AsyncResource { constructor(opts, factory, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts; try { if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (typeof factory !== "function") { throw new InvalidArgumentError("invalid factory"); } if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } if (method === "CONNECT") { throw new InvalidArgumentError("invalid method"); } if (onInfo && typeof onInfo !== "function") { throw new InvalidArgumentError("invalid onInfo callback"); } super("UNDICI_STREAM"); } catch (err) { if (util2.isStream(body)) { util2.destroy(body.on("error", util2.nop), err); } throw err; } this.responseHeaders = responseHeaders || null; this.opaque = opaque || null; this.factory = factory; this.callback = callback; this.res = null; this.abort = null; this.context = null; this.trailers = null; this.body = body; this.onInfo = onInfo || null; this.throwOnError = throwOnError || false; if (util2.isStream(body)) { body.on("error", (err) => { this.onError(err); }); } addSignal(this, signal); } onConnect(abort, context) { if (this.reason) { abort(this.reason); return; } assert(this.callback); this.abort = abort; this.context = context; } onHeaders(statusCode, rawHeaders, resume, statusMessage) { const { factory, opaque, context, callback, responseHeaders } = this; const headers = responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); if (statusCode < 200) { if (this.onInfo) { this.onInfo({ statusCode, headers }); } return; } this.factory = null; let res; if (this.throwOnError && statusCode >= 400) { const parsedHeaders = responseHeaders === "raw" ? util2.parseHeaders(rawHeaders) : headers; const contentType = parsedHeaders["content-type"]; res = new PassThrough(); this.callback = null; this.runInAsyncScope( getResolveErrorBodyCallback, null, { callback, body: res, contentType, statusCode, statusMessage, headers } ); } else { if (factory === null) { return; } res = this.runInAsyncScope(factory, null, { statusCode, headers, opaque, context }); if (!res || typeof res.write !== "function" || typeof res.end !== "function" || typeof res.on !== "function") { throw new InvalidReturnValueError("expected Writable"); } finished(res, { readable: false }, (err) => { const { callback: callback2, res: res2, opaque: opaque2, trailers, abort } = this; this.res = null; if (err || !res2.readable) { util2.destroy(res2, err); } this.callback = null; this.runInAsyncScope(callback2, null, err || null, { opaque: opaque2, trailers }); if (err) { abort(); } }); } res.on("drain", resume); this.res = res; const needDrain = res.writableNeedDrain !== void 0 ? res.writableNeedDrain : res._writableState?.needDrain; return needDrain !== true; } onData(chunk) { const { res } = this; return res ? res.write(chunk) : true; } onComplete(trailers) { const { res } = this; removeSignal(this); if (!res) { return; } this.trailers = util2.parseHeaders(trailers); res.end(); } onError(err) { const { res, callback, opaque, body } = this; removeSignal(this); this.factory = null; if (res) { this.res = null; util2.destroy(res, err); } else if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err, { opaque }); }); } if (body) { this.body = null; util2.destroy(body, err); } } }; function stream2(opts, factory, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { stream2.call(this, opts, factory, (err, data) => { return err ? reject(err) : resolve(data); }); }); } try { this.dispatch(opts, new StreamHandler(opts, factory, callback)); } catch (err) { if (typeof callback !== "function") { throw err; } const opaque = opts?.opaque; queueMicrotask(() => callback(err, { opaque })); } } module2.exports = stream2; } }); // node_modules/undici/lib/api/api-pipeline.js var require_api_pipeline = __commonJS({ "node_modules/undici/lib/api/api-pipeline.js"(exports2, module2) { "use strict"; var { Readable, Duplex, PassThrough } = require("node:stream"); var { InvalidArgumentError, InvalidReturnValueError, RequestAbortedError } = require_errors(); var util2 = require_util(); var { AsyncResource } = require("node:async_hooks"); var { addSignal, removeSignal } = require_abort_signal(); var assert = require("node:assert"); var kResume = /* @__PURE__ */ Symbol("resume"); var PipelineRequest = class extends Readable { constructor() { super({ autoDestroy: true }); this[kResume] = null; } _read() { const { [kResume]: resume } = this; if (resume) { this[kResume] = null; resume(); } } _destroy(err, callback) { this._read(); callback(err); } }; var PipelineResponse = class extends Readable { constructor(resume) { super({ autoDestroy: true }); this[kResume] = resume; } _read() { this[kResume](); } _destroy(err, callback) { if (!err && !this._readableState.endEmitted) { err = new RequestAbortedError(); } callback(err); } }; var PipelineHandler = class extends AsyncResource { constructor(opts, handler2) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } if (typeof handler2 !== "function") { throw new InvalidArgumentError("invalid handler"); } const { signal, method, opaque, onInfo, responseHeaders } = opts; if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } if (method === "CONNECT") { throw new InvalidArgumentError("invalid method"); } if (onInfo && typeof onInfo !== "function") { throw new InvalidArgumentError("invalid onInfo callback"); } super("UNDICI_PIPELINE"); this.opaque = opaque || null; this.responseHeaders = responseHeaders || null; this.handler = handler2; this.abort = null; this.context = null; this.onInfo = onInfo || null; this.req = new PipelineRequest().on("error", util2.nop); this.ret = new Duplex({ readableObjectMode: opts.objectMode, autoDestroy: true, read: () => { const { body } = this; if (body?.resume) { body.resume(); } }, write: (chunk, encoding, callback) => { const { req } = this; if (req.push(chunk, encoding) || req._readableState.destroyed) { callback(); } else { req[kResume] = callback; } }, destroy: (err, callback) => { const { body, req, res, ret, abort } = this; if (!err && !ret._readableState.endEmitted) { err = new RequestAbortedError(); } if (abort && err) { abort(); } util2.destroy(body, err); util2.destroy(req, err); util2.destroy(res, err); removeSignal(this); callback(err); } }).on("prefinish", () => { const { req } = this; req.push(null); }); this.res = null; addSignal(this, signal); } onConnect(abort, context) { const { ret, res } = this; if (this.reason) { abort(this.reason); return; } assert(!res, "pipeline cannot be retried"); assert(!ret.destroyed); this.abort = abort; this.context = context; } onHeaders(statusCode, rawHeaders, resume) { const { opaque, handler: handler2, context } = this; if (statusCode < 200) { if (this.onInfo) { const headers = this.responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); this.onInfo({ statusCode, headers }); } return; } this.res = new PipelineResponse(resume); let body; try { this.handler = null; const headers = this.responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); body = this.runInAsyncScope(handler2, null, { statusCode, headers, opaque, body: this.res, context }); } catch (err) { this.res.on("error", util2.nop); throw err; } if (!body || typeof body.on !== "function") { throw new InvalidReturnValueError("expected Readable"); } body.on("data", (chunk) => { const { ret, body: body2 } = this; if (!ret.push(chunk) && body2.pause) { body2.pause(); } }).on("error", (err) => { const { ret } = this; util2.destroy(ret, err); }).on("end", () => { const { ret } = this; ret.push(null); }).on("close", () => { const { ret } = this; if (!ret._readableState.ended) { util2.destroy(ret, new RequestAbortedError()); } }); this.body = body; } onData(chunk) { const { res } = this; return res.push(chunk); } onComplete(trailers) { const { res } = this; res.push(null); } onError(err) { const { ret } = this; this.handler = null; util2.destroy(ret, err); } }; function pipeline2(opts, handler2) { try { const pipelineHandler = new PipelineHandler(opts, handler2); this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler); return pipelineHandler.ret; } catch (err) { return new PassThrough().destroy(err); } } module2.exports = pipeline2; } }); // node_modules/undici/lib/api/api-upgrade.js var require_api_upgrade = __commonJS({ "node_modules/undici/lib/api/api-upgrade.js"(exports2, module2) { "use strict"; var { InvalidArgumentError, SocketError } = require_errors(); var { AsyncResource } = require("node:async_hooks"); var util2 = require_util(); var { addSignal, removeSignal } = require_abort_signal(); var assert = require("node:assert"); var UpgradeHandler = class extends AsyncResource { constructor(opts, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } const { signal, opaque, responseHeaders } = opts; if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } super("UNDICI_UPGRADE"); this.responseHeaders = responseHeaders || null; this.opaque = opaque || null; this.callback = callback; this.abort = null; this.context = null; addSignal(this, signal); } onConnect(abort, context) { if (this.reason) { abort(this.reason); return; } assert(this.callback); this.abort = abort; this.context = null; } onHeaders() { throw new SocketError("bad upgrade", null); } onUpgrade(statusCode, rawHeaders, socket) { assert(statusCode === 101); const { callback, opaque, context } = this; removeSignal(this); this.callback = null; const headers = this.responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); this.runInAsyncScope(callback, null, null, { headers, socket, opaque, context }); } onError(err) { const { callback, opaque } = this; removeSignal(this); if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err, { opaque }); }); } } }; function upgrade(opts, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { upgrade.call(this, opts, (err, data) => { return err ? reject(err) : resolve(data); }); }); } try { const upgradeHandler = new UpgradeHandler(opts, callback); this.dispatch({ ...opts, method: opts.method || "GET", upgrade: opts.protocol || "Websocket" }, upgradeHandler); } catch (err) { if (typeof callback !== "function") { throw err; } const opaque = opts?.opaque; queueMicrotask(() => callback(err, { opaque })); } } module2.exports = upgrade; } }); // node_modules/undici/lib/api/api-connect.js var require_api_connect = __commonJS({ "node_modules/undici/lib/api/api-connect.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { AsyncResource } = require("node:async_hooks"); var { InvalidArgumentError, SocketError } = require_errors(); var util2 = require_util(); var { addSignal, removeSignal } = require_abort_signal(); var ConnectHandler = class extends AsyncResource { constructor(opts, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } const { signal, opaque, responseHeaders } = opts; if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } super("UNDICI_CONNECT"); this.opaque = opaque || null; this.responseHeaders = responseHeaders || null; this.callback = callback; this.abort = null; addSignal(this, signal); } onConnect(abort, context) { if (this.reason) { abort(this.reason); return; } assert(this.callback); this.abort = abort; this.context = context; } onHeaders() { throw new SocketError("bad connect", null); } onUpgrade(statusCode, rawHeaders, socket) { const { callback, opaque, context } = this; removeSignal(this); this.callback = null; let headers = rawHeaders; if (headers != null) { headers = this.responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); } this.runInAsyncScope(callback, null, null, { statusCode, headers, socket, opaque, context }); } onError(err) { const { callback, opaque } = this; removeSignal(this); if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err, { opaque }); }); } } }; function connect(opts, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { connect.call(this, opts, (err, data) => { return err ? reject(err) : resolve(data); }); }); } try { const connectHandler = new ConnectHandler(opts, callback); this.dispatch({ ...opts, method: "CONNECT" }, connectHandler); } catch (err) { if (typeof callback !== "function") { throw err; } const opaque = opts?.opaque; queueMicrotask(() => callback(err, { opaque })); } } module2.exports = connect; } }); // node_modules/undici/lib/api/index.js var require_api = __commonJS({ "node_modules/undici/lib/api/index.js"(exports2, module2) { "use strict"; module2.exports.request = require_api_request(); module2.exports.stream = require_api_stream(); module2.exports.pipeline = require_api_pipeline(); module2.exports.upgrade = require_api_upgrade(); module2.exports.connect = require_api_connect(); } }); // node_modules/undici/lib/mock/mock-errors.js var require_mock_errors = __commonJS({ "node_modules/undici/lib/mock/mock-errors.js"(exports2, module2) { "use strict"; var { UndiciError } = require_errors(); var kMockNotMatchedError = /* @__PURE__ */ Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"); var MockNotMatchedError = class _MockNotMatchedError extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, _MockNotMatchedError); this.name = "MockNotMatchedError"; this.message = message || "The request does not match any registered mock dispatches"; this.code = "UND_MOCK_ERR_MOCK_NOT_MATCHED"; } static [Symbol.hasInstance](instance) { return instance && instance[kMockNotMatchedError] === true; } [kMockNotMatchedError] = true; }; module2.exports = { MockNotMatchedError }; } }); // node_modules/undici/lib/mock/mock-symbols.js var require_mock_symbols = __commonJS({ "node_modules/undici/lib/mock/mock-symbols.js"(exports2, module2) { "use strict"; module2.exports = { kAgent: /* @__PURE__ */ Symbol("agent"), kOptions: /* @__PURE__ */ Symbol("options"), kFactory: /* @__PURE__ */ Symbol("factory"), kDispatches: /* @__PURE__ */ Symbol("dispatches"), kDispatchKey: /* @__PURE__ */ Symbol("dispatch key"), kDefaultHeaders: /* @__PURE__ */ Symbol("default headers"), kDefaultTrailers: /* @__PURE__ */ Symbol("default trailers"), kContentLength: /* @__PURE__ */ Symbol("content length"), kMockAgent: /* @__PURE__ */ Symbol("mock agent"), kMockAgentSet: /* @__PURE__ */ Symbol("mock agent set"), kMockAgentGet: /* @__PURE__ */ Symbol("mock agent get"), kMockDispatch: /* @__PURE__ */ Symbol("mock dispatch"), kClose: /* @__PURE__ */ Symbol("close"), kOriginalClose: /* @__PURE__ */ Symbol("original agent close"), kOrigin: /* @__PURE__ */ Symbol("origin"), kIsMockActive: /* @__PURE__ */ Symbol("is mock active"), kNetConnect: /* @__PURE__ */ Symbol("net connect"), kGetNetConnect: /* @__PURE__ */ Symbol("get net connect"), kConnected: /* @__PURE__ */ Symbol("connected") }; } }); // node_modules/undici/lib/mock/mock-utils.js var require_mock_utils = __commonJS({ "node_modules/undici/lib/mock/mock-utils.js"(exports2, module2) { "use strict"; var { MockNotMatchedError } = require_mock_errors(); var { kDispatches, kMockAgent, kOriginalDispatch, kOrigin, kGetNetConnect } = require_mock_symbols(); var { buildURL } = require_util(); var { STATUS_CODES } = require("node:http"); var { types: { isPromise } } = require("node:util"); function matchValue(match, value) { if (typeof match === "string") { return match === value; } if (match instanceof RegExp) { return match.test(value); } if (typeof match === "function") { return match(value) === true; } return false; } function lowerCaseEntries(headers) { return Object.fromEntries( Object.entries(headers).map(([headerName, headerValue]) => { return [headerName.toLocaleLowerCase(), headerValue]; }) ); } function getHeaderByName(headers, key) { if (Array.isArray(headers)) { for (let i = 0; i < headers.length; i += 2) { if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) { return headers[i + 1]; } } return void 0; } else if (typeof headers.get === "function") { return headers.get(key); } else { return lowerCaseEntries(headers)[key.toLocaleLowerCase()]; } } function buildHeadersFromArray(headers) { const clone = headers.slice(); const entries = []; for (let index = 0; index < clone.length; index += 2) { entries.push([clone[index], clone[index + 1]]); } return Object.fromEntries(entries); } function matchHeaders(mockDispatch2, headers) { if (typeof mockDispatch2.headers === "function") { if (Array.isArray(headers)) { headers = buildHeadersFromArray(headers); } return mockDispatch2.headers(headers ? lowerCaseEntries(headers) : {}); } if (typeof mockDispatch2.headers === "undefined") { return true; } if (typeof headers !== "object" || typeof mockDispatch2.headers !== "object") { return false; } for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch2.headers)) { const headerValue = getHeaderByName(headers, matchHeaderName); if (!matchValue(matchHeaderValue, headerValue)) { return false; } } return true; } function safeUrl(path2) { if (typeof path2 !== "string") { return path2; } const pathSegments = path2.split("?"); if (pathSegments.length !== 2) { return path2; } const qp = new URLSearchParams(pathSegments.pop()); qp.sort(); return [...pathSegments, qp.toString()].join("?"); } function matchKey(mockDispatch2, { path: path2, method, body, headers }) { const pathMatch = matchValue(mockDispatch2.path, path2); const methodMatch = matchValue(mockDispatch2.method, method); const bodyMatch = typeof mockDispatch2.body !== "undefined" ? matchValue(mockDispatch2.body, body) : true; const headersMatch = matchHeaders(mockDispatch2, headers); return pathMatch && methodMatch && bodyMatch && headersMatch; } function getResponseData2(data) { if (Buffer.isBuffer(data)) { return data; } else if (data instanceof Uint8Array) { return data; } else if (data instanceof ArrayBuffer) { return data; } else if (typeof data === "object") { return JSON.stringify(data); } else { return data.toString(); } } function getMockDispatch(mockDispatches, key) { const basePath = key.query ? buildURL(key.path, key.query) : key.path; const resolvedPath = typeof basePath === "string" ? safeUrl(basePath) : basePath; let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path: path2 }) => matchValue(safeUrl(path2), resolvedPath)); if (matchedMockDispatches.length === 0) { throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`); } matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method)); if (matchedMockDispatches.length === 0) { throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}' on path '${resolvedPath}'`); } matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== "undefined" ? matchValue(body, key.body) : true); if (matchedMockDispatches.length === 0) { throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}' on path '${resolvedPath}'`); } matchedMockDispatches = matchedMockDispatches.filter((mockDispatch2) => matchHeaders(mockDispatch2, key.headers)); if (matchedMockDispatches.length === 0) { const headers = typeof key.headers === "object" ? JSON.stringify(key.headers) : key.headers; throw new MockNotMatchedError(`Mock dispatch not matched for headers '${headers}' on path '${resolvedPath}'`); } return matchedMockDispatches[0]; } function addMockDispatch(mockDispatches, key, data) { const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }; const replyData = typeof data === "function" ? { callback: data } : { ...data }; const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }; mockDispatches.push(newMockDispatch); return newMockDispatch; } function deleteMockDispatch(mockDispatches, key) { const index = mockDispatches.findIndex((dispatch) => { if (!dispatch.consumed) { return false; } return matchKey(dispatch, key); }); if (index !== -1) { mockDispatches.splice(index, 1); } } function buildKey(opts) { const { path: path2, method, body, headers, query } = opts; return { path: path2, method, body, headers, query }; } function generateKeyValues(data) { const keys = Object.keys(data); const result = []; for (let i = 0; i < keys.length; ++i) { const key = keys[i]; const value = data[key]; const name = Buffer.from(`${key}`); if (Array.isArray(value)) { for (let j = 0; j < value.length; ++j) { result.push(name, Buffer.from(`${value[j]}`)); } } else { result.push(name, Buffer.from(`${value}`)); } } return result; } function getStatusText(statusCode) { return STATUS_CODES[statusCode] || "unknown"; } async function getResponse(body) { const buffers = []; for await (const data of body) { buffers.push(data); } return Buffer.concat(buffers).toString("utf8"); } function mockDispatch(opts, handler2) { const key = buildKey(opts); const mockDispatch2 = getMockDispatch(this[kDispatches], key); mockDispatch2.timesInvoked++; if (mockDispatch2.data.callback) { mockDispatch2.data = { ...mockDispatch2.data, ...mockDispatch2.data.callback(opts) }; } const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch2; const { timesInvoked, times } = mockDispatch2; mockDispatch2.consumed = !persist && timesInvoked >= times; mockDispatch2.pending = timesInvoked < times; if (error !== null) { deleteMockDispatch(this[kDispatches], key); handler2.onError(error); return true; } if (typeof delay === "number" && delay > 0) { setTimeout(() => { handleReply(this[kDispatches]); }, delay); } else { handleReply(this[kDispatches]); } function handleReply(mockDispatches, _data = data) { const optsHeaders = Array.isArray(opts.headers) ? buildHeadersFromArray(opts.headers) : opts.headers; const body = typeof _data === "function" ? _data({ ...opts, headers: optsHeaders }) : _data; if (isPromise(body)) { body.then((newData) => handleReply(mockDispatches, newData)); return; } const responseData = getResponseData2(body); const responseHeaders = generateKeyValues(headers); const responseTrailers = generateKeyValues(trailers); handler2.onConnect?.((err) => handler2.onError(err), null); handler2.onHeaders?.(statusCode, responseHeaders, resume, getStatusText(statusCode)); handler2.onData?.(Buffer.from(responseData)); handler2.onComplete?.(responseTrailers); deleteMockDispatch(mockDispatches, key); } function resume() { } return true; } function buildMockDispatch() { const agent = this[kMockAgent]; const origin = this[kOrigin]; const originalDispatch = this[kOriginalDispatch]; return function dispatch(opts, handler2) { if (agent.isMockActive) { try { mockDispatch.call(this, opts, handler2); } catch (error) { if (error instanceof MockNotMatchedError) { const netConnect = agent[kGetNetConnect](); if (netConnect === false) { throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`); } if (checkNetConnect(netConnect, origin)) { originalDispatch.call(this, opts, handler2); } else { throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`); } } else { throw error; } } } else { originalDispatch.call(this, opts, handler2); } }; } function checkNetConnect(netConnect, origin) { const url = new URL(origin); if (netConnect === true) { return true; } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) { return true; } return false; } function buildMockOptions(opts) { if (opts) { const { agent, ...mockOptions } = opts; return mockOptions; } } module2.exports = { getResponseData: getResponseData2, getMockDispatch, addMockDispatch, deleteMockDispatch, buildKey, generateKeyValues, matchValue, getResponse, getStatusText, mockDispatch, buildMockDispatch, checkNetConnect, buildMockOptions, getHeaderByName, buildHeadersFromArray }; } }); // node_modules/undici/lib/mock/mock-interceptor.js var require_mock_interceptor = __commonJS({ "node_modules/undici/lib/mock/mock-interceptor.js"(exports2, module2) { "use strict"; var { getResponseData: getResponseData2, buildKey, addMockDispatch } = require_mock_utils(); var { kDispatches, kDispatchKey, kDefaultHeaders, kDefaultTrailers, kContentLength, kMockDispatch } = require_mock_symbols(); var { InvalidArgumentError } = require_errors(); var { buildURL } = require_util(); var MockScope = class { constructor(mockDispatch) { this[kMockDispatch] = mockDispatch; } /** * Delay a reply by a set amount in ms. */ delay(waitInMs) { if (typeof waitInMs !== "number" || !Number.isInteger(waitInMs) || waitInMs <= 0) { throw new InvalidArgumentError("waitInMs must be a valid integer > 0"); } this[kMockDispatch].delay = waitInMs; return this; } /** * For a defined reply, never mark as consumed. */ persist() { this[kMockDispatch].persist = true; return this; } /** * Allow one to define a reply for a set amount of matching requests. */ times(repeatTimes) { if (typeof repeatTimes !== "number" || !Number.isInteger(repeatTimes) || repeatTimes <= 0) { throw new InvalidArgumentError("repeatTimes must be a valid integer > 0"); } this[kMockDispatch].times = repeatTimes; return this; } }; var MockInterceptor = class { constructor(opts, mockDispatches) { if (typeof opts !== "object") { throw new InvalidArgumentError("opts must be an object"); } if (typeof opts.path === "undefined") { throw new InvalidArgumentError("opts.path must be defined"); } if (typeof opts.method === "undefined") { opts.method = "GET"; } if (typeof opts.path === "string") { if (opts.query) { opts.path = buildURL(opts.path, opts.query); } else { const parsedURL = new URL(opts.path, "data://"); opts.path = parsedURL.pathname + parsedURL.search; } } if (typeof opts.method === "string") { opts.method = opts.method.toUpperCase(); } this[kDispatchKey] = buildKey(opts); this[kDispatches] = mockDispatches; this[kDefaultHeaders] = {}; this[kDefaultTrailers] = {}; this[kContentLength] = false; } createMockScopeDispatchData({ statusCode, data, responseOptions }) { const responseData = getResponseData2(data); const contentLength = this[kContentLength] ? { "content-length": responseData.length } : {}; const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }; const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }; return { statusCode, data, headers, trailers }; } validateReplyParameters(replyParameters) { if (typeof replyParameters.statusCode === "undefined") { throw new InvalidArgumentError("statusCode must be defined"); } if (typeof replyParameters.responseOptions !== "object" || replyParameters.responseOptions === null) { throw new InvalidArgumentError("responseOptions must be an object"); } } /** * Mock an undici request with a defined reply. */ reply(replyOptionsCallbackOrStatusCode) { if (typeof replyOptionsCallbackOrStatusCode === "function") { const wrappedDefaultsCallback = (opts) => { const resolvedData = replyOptionsCallbackOrStatusCode(opts); if (typeof resolvedData !== "object" || resolvedData === null) { throw new InvalidArgumentError("reply options callback must return an object"); } const replyParameters2 = { data: "", responseOptions: {}, ...resolvedData }; this.validateReplyParameters(replyParameters2); return { ...this.createMockScopeDispatchData(replyParameters2) }; }; const newMockDispatch2 = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback); return new MockScope(newMockDispatch2); } const replyParameters = { statusCode: replyOptionsCallbackOrStatusCode, data: arguments[1] === void 0 ? "" : arguments[1], responseOptions: arguments[2] === void 0 ? {} : arguments[2] }; this.validateReplyParameters(replyParameters); const dispatchData = this.createMockScopeDispatchData(replyParameters); const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData); return new MockScope(newMockDispatch); } /** * Mock an undici request with a defined error. */ replyWithError(error) { if (typeof error === "undefined") { throw new InvalidArgumentError("error must be defined"); } const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error }); return new MockScope(newMockDispatch); } /** * Set default reply headers on the interceptor for subsequent replies */ defaultReplyHeaders(headers) { if (typeof headers === "undefined") { throw new InvalidArgumentError("headers must be defined"); } this[kDefaultHeaders] = headers; return this; } /** * Set default reply trailers on the interceptor for subsequent replies */ defaultReplyTrailers(trailers) { if (typeof trailers === "undefined") { throw new InvalidArgumentError("trailers must be defined"); } this[kDefaultTrailers] = trailers; return this; } /** * Set reply content length header for replies on the interceptor */ replyContentLength() { this[kContentLength] = true; return this; } }; module2.exports.MockInterceptor = MockInterceptor; module2.exports.MockScope = MockScope; } }); // node_modules/undici/lib/mock/mock-client.js var require_mock_client = __commonJS({ "node_modules/undici/lib/mock/mock-client.js"(exports2, module2) { "use strict"; var { promisify: promisify2 } = require("node:util"); var Client = require_client(); var { buildMockDispatch } = require_mock_utils(); var { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected } = require_mock_symbols(); var { MockInterceptor } = require_mock_interceptor(); var Symbols = require_symbols(); var { InvalidArgumentError } = require_errors(); var MockClient = class extends Client { constructor(origin, opts) { super(origin, opts); if (!opts || !opts.agent || typeof opts.agent.dispatch !== "function") { throw new InvalidArgumentError("Argument opts.agent must implement Agent"); } this[kMockAgent] = opts.agent; this[kOrigin] = origin; this[kDispatches] = []; this[kConnected] = 1; this[kOriginalDispatch] = this.dispatch; this[kOriginalClose] = this.close.bind(this); this.dispatch = buildMockDispatch.call(this); this.close = this[kClose]; } get [Symbols.kConnected]() { return this[kConnected]; } /** * Sets up the base interceptor for mocking replies from undici. */ intercept(opts) { return new MockInterceptor(opts, this[kDispatches]); } async [kClose]() { await promisify2(this[kOriginalClose])(); this[kConnected] = 0; this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); } }; module2.exports = MockClient; } }); // node_modules/undici/lib/mock/mock-pool.js var require_mock_pool = __commonJS({ "node_modules/undici/lib/mock/mock-pool.js"(exports2, module2) { "use strict"; var { promisify: promisify2 } = require("node:util"); var Pool = require_pool(); var { buildMockDispatch } = require_mock_utils(); var { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected } = require_mock_symbols(); var { MockInterceptor } = require_mock_interceptor(); var Symbols = require_symbols(); var { InvalidArgumentError } = require_errors(); var MockPool = class extends Pool { constructor(origin, opts) { super(origin, opts); if (!opts || !opts.agent || typeof opts.agent.dispatch !== "function") { throw new InvalidArgumentError("Argument opts.agent must implement Agent"); } this[kMockAgent] = opts.agent; this[kOrigin] = origin; this[kDispatches] = []; this[kConnected] = 1; this[kOriginalDispatch] = this.dispatch; this[kOriginalClose] = this.close.bind(this); this.dispatch = buildMockDispatch.call(this); this.close = this[kClose]; } get [Symbols.kConnected]() { return this[kConnected]; } /** * Sets up the base interceptor for mocking replies from undici. */ intercept(opts) { return new MockInterceptor(opts, this[kDispatches]); } async [kClose]() { await promisify2(this[kOriginalClose])(); this[kConnected] = 0; this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); } }; module2.exports = MockPool; } }); // node_modules/undici/lib/mock/pluralizer.js var require_pluralizer = __commonJS({ "node_modules/undici/lib/mock/pluralizer.js"(exports2, module2) { "use strict"; var singulars = { pronoun: "it", is: "is", was: "was", this: "this" }; var plurals = { pronoun: "they", is: "are", was: "were", this: "these" }; module2.exports = class Pluralizer { constructor(singular, plural) { this.singular = singular; this.plural = plural; } pluralize(count) { const one = count === 1; const keys = one ? singulars : plurals; const noun = one ? this.singular : this.plural; return { ...keys, count, noun }; } }; } }); // node_modules/undici/lib/mock/pending-interceptors-formatter.js var require_pending_interceptors_formatter = __commonJS({ "node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports2, module2) { "use strict"; var { Transform } = require("node:stream"); var { Console } = require("node:console"); var PERSISTENT = process.versions.icu ? "\u2705" : "Y "; var NOT_PERSISTENT = process.versions.icu ? "\u274C" : "N "; module2.exports = class PendingInterceptorsFormatter { constructor({ disableColors } = {}) { this.transform = new Transform({ transform(chunk, _enc, cb) { cb(null, chunk); } }); this.logger = new Console({ stdout: this.transform, inspectOptions: { colors: !disableColors && !process.env.CI } }); } format(pendingInterceptors) { const withPrettyHeaders = pendingInterceptors.map( ({ method, path: path2, data: { statusCode }, persist, times, timesInvoked, origin }) => ({ Method: method, Origin: origin, Path: path2, "Status code": statusCode, Persistent: persist ? PERSISTENT : NOT_PERSISTENT, Invocations: timesInvoked, Remaining: persist ? Infinity : times - timesInvoked }) ); this.logger.table(withPrettyHeaders); return this.transform.read().toString(); } }; } }); // node_modules/undici/lib/mock/mock-agent.js var require_mock_agent = __commonJS({ "node_modules/undici/lib/mock/mock-agent.js"(exports2, module2) { "use strict"; var { kClients } = require_symbols(); var Agent3 = require_agent(); var { kAgent, kMockAgentSet, kMockAgentGet, kDispatches, kIsMockActive, kNetConnect, kGetNetConnect, kOptions, kFactory } = require_mock_symbols(); var MockClient = require_mock_client(); var MockPool = require_mock_pool(); var { matchValue, buildMockOptions } = require_mock_utils(); var { InvalidArgumentError, UndiciError } = require_errors(); var Dispatcher = require_dispatcher(); var Pluralizer = require_pluralizer(); var PendingInterceptorsFormatter = require_pending_interceptors_formatter(); var MockAgent = class extends Dispatcher { constructor(opts) { super(opts); this[kNetConnect] = true; this[kIsMockActive] = true; if (opts?.agent && typeof opts.agent.dispatch !== "function") { throw new InvalidArgumentError("Argument opts.agent must implement Agent"); } const agent = opts?.agent ? opts.agent : new Agent3(opts); this[kAgent] = agent; this[kClients] = agent[kClients]; this[kOptions] = buildMockOptions(opts); } get(origin) { let dispatcher = this[kMockAgentGet](origin); if (!dispatcher) { dispatcher = this[kFactory](origin); this[kMockAgentSet](origin, dispatcher); } return dispatcher; } dispatch(opts, handler2) { this.get(opts.origin); return this[kAgent].dispatch(opts, handler2); } async close() { await this[kAgent].close(); this[kClients].clear(); } deactivate() { this[kIsMockActive] = false; } activate() { this[kIsMockActive] = true; } enableNetConnect(matcher) { if (typeof matcher === "string" || typeof matcher === "function" || matcher instanceof RegExp) { if (Array.isArray(this[kNetConnect])) { this[kNetConnect].push(matcher); } else { this[kNetConnect] = [matcher]; } } else if (typeof matcher === "undefined") { this[kNetConnect] = true; } else { throw new InvalidArgumentError("Unsupported matcher. Must be one of String|Function|RegExp."); } } disableNetConnect() { this[kNetConnect] = false; } // This is required to bypass issues caused by using global symbols - see: // https://github.com/nodejs/undici/issues/1447 get isMockActive() { return this[kIsMockActive]; } [kMockAgentSet](origin, dispatcher) { this[kClients].set(origin, dispatcher); } [kFactory](origin) { const mockOptions = Object.assign({ agent: this }, this[kOptions]); return this[kOptions] && this[kOptions].connections === 1 ? new MockClient(origin, mockOptions) : new MockPool(origin, mockOptions); } [kMockAgentGet](origin) { const client = this[kClients].get(origin); if (client) { return client; } if (typeof origin !== "string") { const dispatcher = this[kFactory]("http://localhost:9999"); this[kMockAgentSet](origin, dispatcher); return dispatcher; } for (const [keyMatcher, nonExplicitDispatcher] of Array.from(this[kClients])) { if (nonExplicitDispatcher && typeof keyMatcher !== "string" && matchValue(keyMatcher, origin)) { const dispatcher = this[kFactory](origin); this[kMockAgentSet](origin, dispatcher); dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]; return dispatcher; } } } [kGetNetConnect]() { return this[kNetConnect]; } pendingInterceptors() { const mockAgentClients = this[kClients]; return Array.from(mockAgentClients.entries()).flatMap(([origin, scope]) => scope[kDispatches].map((dispatch) => ({ ...dispatch, origin }))).filter(({ pending }) => pending); } assertNoPendingInterceptors({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { const pending = this.pendingInterceptors(); if (pending.length === 0) { return; } const pluralizer = new Pluralizer("interceptor", "interceptors").pluralize(pending.length); throw new UndiciError(` ${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: ${pendingInterceptorsFormatter.format(pending)} `.trim()); } }; module2.exports = MockAgent; } }); // node_modules/undici/lib/global.js var require_global2 = __commonJS({ "node_modules/undici/lib/global.js"(exports2, module2) { "use strict"; var globalDispatcher = /* @__PURE__ */ Symbol.for("undici.globalDispatcher.1"); var { InvalidArgumentError } = require_errors(); var Agent3 = require_agent(); if (getGlobalDispatcher() === void 0) { setGlobalDispatcher(new Agent3()); } function setGlobalDispatcher(agent) { if (!agent || typeof agent.dispatch !== "function") { throw new InvalidArgumentError("Argument agent must implement Agent"); } Object.defineProperty(globalThis, globalDispatcher, { value: agent, writable: true, enumerable: false, configurable: false }); } function getGlobalDispatcher() { return globalThis[globalDispatcher]; } module2.exports = { setGlobalDispatcher, getGlobalDispatcher }; } }); // node_modules/undici/lib/handler/decorator-handler.js var require_decorator_handler = __commonJS({ "node_modules/undici/lib/handler/decorator-handler.js"(exports2, module2) { "use strict"; module2.exports = class DecoratorHandler { #handler; constructor(handler2) { if (typeof handler2 !== "object" || handler2 === null) { throw new TypeError("handler must be an object"); } this.#handler = handler2; } onConnect(...args) { return this.#handler.onConnect?.(...args); } onError(...args) { return this.#handler.onError?.(...args); } onUpgrade(...args) { return this.#handler.onUpgrade?.(...args); } onResponseStarted(...args) { return this.#handler.onResponseStarted?.(...args); } onHeaders(...args) { return this.#handler.onHeaders?.(...args); } onData(...args) { return this.#handler.onData?.(...args); } onComplete(...args) { return this.#handler.onComplete?.(...args); } onBodySent(...args) { return this.#handler.onBodySent?.(...args); } }; } }); // node_modules/undici/lib/interceptor/redirect.js var require_redirect = __commonJS({ "node_modules/undici/lib/interceptor/redirect.js"(exports2, module2) { "use strict"; var RedirectHandler = require_redirect_handler(); module2.exports = (opts) => { const globalMaxRedirections = opts?.maxRedirections; return (dispatch) => { return function redirectInterceptor(opts2, handler2) { const { maxRedirections = globalMaxRedirections, ...baseOpts } = opts2; if (!maxRedirections) { return dispatch(opts2, handler2); } const redirectHandler = new RedirectHandler( dispatch, maxRedirections, opts2, handler2 ); return dispatch(baseOpts, redirectHandler); }; }; }; } }); // node_modules/undici/lib/interceptor/retry.js var require_retry = __commonJS({ "node_modules/undici/lib/interceptor/retry.js"(exports2, module2) { "use strict"; var RetryHandler = require_retry_handler(); module2.exports = (globalOpts) => { return (dispatch) => { return function retryInterceptor(opts, handler2) { return dispatch( opts, new RetryHandler( { ...opts, retryOptions: { ...globalOpts, ...opts.retryOptions } }, { handler: handler2, dispatch } ) ); }; }; }; } }); // node_modules/undici/lib/interceptor/dump.js var require_dump = __commonJS({ "node_modules/undici/lib/interceptor/dump.js"(exports2, module2) { "use strict"; var util2 = require_util(); var { InvalidArgumentError, RequestAbortedError } = require_errors(); var DecoratorHandler = require_decorator_handler(); var DumpHandler = class extends DecoratorHandler { #maxSize = 1024 * 1024; #abort = null; #dumped = false; #aborted = false; #size = 0; #reason = null; #handler = null; constructor({ maxSize }, handler2) { super(handler2); if (maxSize != null && (!Number.isFinite(maxSize) || maxSize < 1)) { throw new InvalidArgumentError("maxSize must be a number greater than 0"); } this.#maxSize = maxSize ?? this.#maxSize; this.#handler = handler2; } onConnect(abort) { this.#abort = abort; this.#handler.onConnect(this.#customAbort.bind(this)); } #customAbort(reason) { this.#aborted = true; this.#reason = reason; } // TODO: will require adjustment after new hooks are out onHeaders(statusCode, rawHeaders, resume, statusMessage) { const headers = util2.parseHeaders(rawHeaders); const contentLength = headers["content-length"]; if (contentLength != null && contentLength > this.#maxSize) { throw new RequestAbortedError( `Response size (${contentLength}) larger than maxSize (${this.#maxSize})` ); } if (this.#aborted) { return true; } return this.#handler.onHeaders( statusCode, rawHeaders, resume, statusMessage ); } onError(err) { if (this.#dumped) { return; } err = this.#reason ?? err; this.#handler.onError(err); } onData(chunk) { this.#size = this.#size + chunk.length; if (this.#size >= this.#maxSize) { this.#dumped = true; if (this.#aborted) { this.#handler.onError(this.#reason); } else { this.#handler.onComplete([]); } } return true; } onComplete(trailers) { if (this.#dumped) { return; } if (this.#aborted) { this.#handler.onError(this.reason); return; } this.#handler.onComplete(trailers); } }; function createDumpInterceptor({ maxSize: defaultMaxSize } = { maxSize: 1024 * 1024 }) { return (dispatch) => { return function Intercept(opts, handler2) { const { dumpMaxSize = defaultMaxSize } = opts; const dumpHandler = new DumpHandler( { maxSize: dumpMaxSize }, handler2 ); return dispatch(opts, dumpHandler); }; }; } module2.exports = createDumpInterceptor; } }); // node_modules/undici/lib/interceptor/dns.js var require_dns = __commonJS({ "node_modules/undici/lib/interceptor/dns.js"(exports2, module2) { "use strict"; var { isIP } = require("node:net"); var { lookup } = require("node:dns"); var DecoratorHandler = require_decorator_handler(); var { InvalidArgumentError, InformationalError } = require_errors(); var maxInt = Math.pow(2, 31) - 1; var DNSInstance = class { #maxTTL = 0; #maxItems = 0; #records = /* @__PURE__ */ new Map(); dualStack = true; affinity = null; lookup = null; pick = null; constructor(opts) { this.#maxTTL = opts.maxTTL; this.#maxItems = opts.maxItems; this.dualStack = opts.dualStack; this.affinity = opts.affinity; this.lookup = opts.lookup ?? this.#defaultLookup; this.pick = opts.pick ?? this.#defaultPick; } get full() { return this.#records.size === this.#maxItems; } runLookup(origin, opts, cb) { const ips = this.#records.get(origin.hostname); if (ips == null && this.full) { cb(null, origin.origin); return; } const newOpts = { affinity: this.affinity, dualStack: this.dualStack, lookup: this.lookup, pick: this.pick, ...opts.dns, maxTTL: this.#maxTTL, maxItems: this.#maxItems }; if (ips == null) { this.lookup(origin, newOpts, (err, addresses) => { if (err || addresses == null || addresses.length === 0) { cb(err ?? new InformationalError("No DNS entries found")); return; } this.setRecords(origin, addresses); const records = this.#records.get(origin.hostname); const ip = this.pick( origin, records, newOpts.affinity ); let port; if (typeof ip.port === "number") { port = `:${ip.port}`; } else if (origin.port !== "") { port = `:${origin.port}`; } else { port = ""; } cb( null, `${origin.protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}` ); }); } else { const ip = this.pick( origin, ips, newOpts.affinity ); if (ip == null) { this.#records.delete(origin.hostname); this.runLookup(origin, opts, cb); return; } let port; if (typeof ip.port === "number") { port = `:${ip.port}`; } else if (origin.port !== "") { port = `:${origin.port}`; } else { port = ""; } cb( null, `${origin.protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}` ); } } #defaultLookup(origin, opts, cb) { lookup( origin.hostname, { all: true, family: this.dualStack === false ? this.affinity : 0, order: "ipv4first" }, (err, addresses) => { if (err) { return cb(err); } const results = /* @__PURE__ */ new Map(); for (const addr of addresses) { results.set(`${addr.address}:${addr.family}`, addr); } cb(null, results.values()); } ); } #defaultPick(origin, hostnameRecords, affinity) { let ip = null; const { records, offset } = hostnameRecords; let family; if (this.dualStack) { if (affinity == null) { if (offset == null || offset === maxInt) { hostnameRecords.offset = 0; affinity = 4; } else { hostnameRecords.offset++; affinity = (hostnameRecords.offset & 1) === 1 ? 6 : 4; } } if (records[affinity] != null && records[affinity].ips.length > 0) { family = records[affinity]; } else { family = records[affinity === 4 ? 6 : 4]; } } else { family = records[affinity]; } if (family == null || family.ips.length === 0) { return ip; } if (family.offset == null || family.offset === maxInt) { family.offset = 0; } else { family.offset++; } const position = family.offset % family.ips.length; ip = family.ips[position] ?? null; if (ip == null) { return ip; } if (Date.now() - ip.timestamp > ip.ttl) { family.ips.splice(position, 1); return this.pick(origin, hostnameRecords, affinity); } return ip; } setRecords(origin, addresses) { const timestamp = Date.now(); const records = { records: { 4: null, 6: null } }; for (const record of addresses) { record.timestamp = timestamp; if (typeof record.ttl === "number") { record.ttl = Math.min(record.ttl, this.#maxTTL); } else { record.ttl = this.#maxTTL; } const familyRecords = records.records[record.family] ?? { ips: [] }; familyRecords.ips.push(record); records.records[record.family] = familyRecords; } this.#records.set(origin.hostname, records); } getHandler(meta, opts) { return new DNSDispatchHandler(this, meta, opts); } }; var DNSDispatchHandler = class extends DecoratorHandler { #state = null; #opts = null; #dispatch = null; #handler = null; #origin = null; constructor(state, { origin, handler: handler2, dispatch }, opts) { super(handler2); this.#origin = origin; this.#handler = handler2; this.#opts = { ...opts }; this.#state = state; this.#dispatch = dispatch; } onError(err) { switch (err.code) { case "ETIMEDOUT": case "ECONNREFUSED": { if (this.#state.dualStack) { this.#state.runLookup(this.#origin, this.#opts, (err2, newOrigin) => { if (err2) { return this.#handler.onError(err2); } const dispatchOpts = { ...this.#opts, origin: newOrigin }; this.#dispatch(dispatchOpts, this); }); return; } this.#handler.onError(err); return; } case "ENOTFOUND": this.#state.deleteRecord(this.#origin); // eslint-disable-next-line no-fallthrough default: this.#handler.onError(err); break; } } }; module2.exports = (interceptorOpts) => { if (interceptorOpts?.maxTTL != null && (typeof interceptorOpts?.maxTTL !== "number" || interceptorOpts?.maxTTL < 0)) { throw new InvalidArgumentError("Invalid maxTTL. Must be a positive number"); } if (interceptorOpts?.maxItems != null && (typeof interceptorOpts?.maxItems !== "number" || interceptorOpts?.maxItems < 1)) { throw new InvalidArgumentError( "Invalid maxItems. Must be a positive number and greater than zero" ); } if (interceptorOpts?.affinity != null && interceptorOpts?.affinity !== 4 && interceptorOpts?.affinity !== 6) { throw new InvalidArgumentError("Invalid affinity. Must be either 4 or 6"); } if (interceptorOpts?.dualStack != null && typeof interceptorOpts?.dualStack !== "boolean") { throw new InvalidArgumentError("Invalid dualStack. Must be a boolean"); } if (interceptorOpts?.lookup != null && typeof interceptorOpts?.lookup !== "function") { throw new InvalidArgumentError("Invalid lookup. Must be a function"); } if (interceptorOpts?.pick != null && typeof interceptorOpts?.pick !== "function") { throw new InvalidArgumentError("Invalid pick. Must be a function"); } const dualStack = interceptorOpts?.dualStack ?? true; let affinity; if (dualStack) { affinity = interceptorOpts?.affinity ?? null; } else { affinity = interceptorOpts?.affinity ?? 4; } const opts = { maxTTL: interceptorOpts?.maxTTL ?? 1e4, // Expressed in ms lookup: interceptorOpts?.lookup ?? null, pick: interceptorOpts?.pick ?? null, dualStack, affinity, maxItems: interceptorOpts?.maxItems ?? Infinity }; const instance = new DNSInstance(opts); return (dispatch) => { return function dnsInterceptor(origDispatchOpts, handler2) { const origin = origDispatchOpts.origin.constructor === URL ? origDispatchOpts.origin : new URL(origDispatchOpts.origin); if (isIP(origin.hostname) !== 0) { return dispatch(origDispatchOpts, handler2); } instance.runLookup(origin, origDispatchOpts, (err, newOrigin) => { if (err) { return handler2.onError(err); } let dispatchOpts = null; dispatchOpts = { ...origDispatchOpts, servername: origin.hostname, // For SNI on TLS origin: newOrigin, headers: { host: origin.hostname, ...origDispatchOpts.headers } }; dispatch( dispatchOpts, instance.getHandler({ origin, dispatch, handler: handler2 }, origDispatchOpts) ); }); return true; }; }; }; } }); // node_modules/undici/lib/web/fetch/headers.js var require_headers = __commonJS({ "node_modules/undici/lib/web/fetch/headers.js"(exports2, module2) { "use strict"; var { kConstruct } = require_symbols(); var { kEnumerableProperty } = require_util(); var { iteratorMixin, isValidHeaderName, isValidHeaderValue } = require_util2(); var { webidl } = require_webidl(); var assert = require("node:assert"); var util2 = require("node:util"); var kHeadersMap = /* @__PURE__ */ Symbol("headers map"); var kHeadersSortedMap = /* @__PURE__ */ Symbol("headers map sorted"); function isHTTPWhiteSpaceCharCode(code) { return code === 10 || code === 13 || code === 9 || code === 32; } function headerValueNormalize(potentialValue) { let i = 0; let j = potentialValue.length; while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j; while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i; return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j); } function fill(headers, object) { if (Array.isArray(object)) { for (let i = 0; i < object.length; ++i) { const header = object[i]; if (header.length !== 2) { throw webidl.errors.exception({ header: "Headers constructor", message: `expected name/value pair to be length 2, found ${header.length}.` }); } appendHeader(headers, header[0], header[1]); } } else if (typeof object === "object" && object !== null) { const keys = Object.keys(object); for (let i = 0; i < keys.length; ++i) { appendHeader(headers, keys[i], object[keys[i]]); } } else { throw webidl.errors.conversionFailed({ prefix: "Headers constructor", argument: "Argument 1", types: ["sequence>", "record"] }); } } function appendHeader(headers, name, value) { value = headerValueNormalize(value); if (!isValidHeaderName(name)) { throw webidl.errors.invalidArgument({ prefix: "Headers.append", value: name, type: "header name" }); } else if (!isValidHeaderValue(value)) { throw webidl.errors.invalidArgument({ prefix: "Headers.append", value, type: "header value" }); } if (getHeadersGuard(headers) === "immutable") { throw new TypeError("immutable"); } return getHeadersList(headers).append(name, value, false); } function compareHeaderName(a, b) { return a[0] < b[0] ? -1 : 1; } var HeadersList = class _HeadersList { /** @type {[string, string][]|null} */ cookies = null; constructor(init) { if (init instanceof _HeadersList) { this[kHeadersMap] = new Map(init[kHeadersMap]); this[kHeadersSortedMap] = init[kHeadersSortedMap]; this.cookies = init.cookies === null ? null : [...init.cookies]; } else { this[kHeadersMap] = new Map(init); this[kHeadersSortedMap] = null; } } /** * @see https://fetch.spec.whatwg.org/#header-list-contains * @param {string} name * @param {boolean} isLowerCase */ contains(name, isLowerCase) { return this[kHeadersMap].has(isLowerCase ? name : name.toLowerCase()); } clear() { this[kHeadersMap].clear(); this[kHeadersSortedMap] = null; this.cookies = null; } /** * @see https://fetch.spec.whatwg.org/#concept-header-list-append * @param {string} name * @param {string} value * @param {boolean} isLowerCase */ append(name, value, isLowerCase) { this[kHeadersSortedMap] = null; const lowercaseName = isLowerCase ? name : name.toLowerCase(); const exists2 = this[kHeadersMap].get(lowercaseName); if (exists2) { const delimiter = lowercaseName === "cookie" ? "; " : ", "; this[kHeadersMap].set(lowercaseName, { name: exists2.name, value: `${exists2.value}${delimiter}${value}` }); } else { this[kHeadersMap].set(lowercaseName, { name, value }); } if (lowercaseName === "set-cookie") { (this.cookies ??= []).push(value); } } /** * @see https://fetch.spec.whatwg.org/#concept-header-list-set * @param {string} name * @param {string} value * @param {boolean} isLowerCase */ set(name, value, isLowerCase) { this[kHeadersSortedMap] = null; const lowercaseName = isLowerCase ? name : name.toLowerCase(); if (lowercaseName === "set-cookie") { this.cookies = [value]; } this[kHeadersMap].set(lowercaseName, { name, value }); } /** * @see https://fetch.spec.whatwg.org/#concept-header-list-delete * @param {string} name * @param {boolean} isLowerCase */ delete(name, isLowerCase) { this[kHeadersSortedMap] = null; if (!isLowerCase) name = name.toLowerCase(); if (name === "set-cookie") { this.cookies = null; } this[kHeadersMap].delete(name); } /** * @see https://fetch.spec.whatwg.org/#concept-header-list-get * @param {string} name * @param {boolean} isLowerCase * @returns {string | null} */ get(name, isLowerCase) { return this[kHeadersMap].get(isLowerCase ? name : name.toLowerCase())?.value ?? null; } *[Symbol.iterator]() { for (const { 0: name, 1: { value } } of this[kHeadersMap]) { yield [name, value]; } } get entries() { const headers = {}; if (this[kHeadersMap].size !== 0) { for (const { name, value } of this[kHeadersMap].values()) { headers[name] = value; } } return headers; } rawValues() { return this[kHeadersMap].values(); } get entriesList() { const headers = []; if (this[kHeadersMap].size !== 0) { for (const { 0: lowerName, 1: { name, value } } of this[kHeadersMap]) { if (lowerName === "set-cookie") { for (const cookie of this.cookies) { headers.push([name, cookie]); } } else { headers.push([name, value]); } } } return headers; } // https://fetch.spec.whatwg.org/#convert-header-names-to-a-sorted-lowercase-set toSortedArray() { const size = this[kHeadersMap].size; const array = new Array(size); if (size <= 32) { if (size === 0) { return array; } const iterator2 = this[kHeadersMap][Symbol.iterator](); const firstValue = iterator2.next().value; array[0] = [firstValue[0], firstValue[1].value]; assert(firstValue[1].value !== null); for (let i = 1, j = 0, right = 0, left = 0, pivot = 0, x, value; i < size; ++i) { value = iterator2.next().value; x = array[i] = [value[0], value[1].value]; assert(x[1] !== null); left = 0; right = i; while (left < right) { pivot = left + (right - left >> 1); if (array[pivot][0] <= x[0]) { left = pivot + 1; } else { right = pivot; } } if (i !== pivot) { j = i; while (j > left) { array[j] = array[--j]; } array[left] = x; } } if (!iterator2.next().done) { throw new TypeError("Unreachable"); } return array; } else { let i = 0; for (const { 0: name, 1: { value } } of this[kHeadersMap]) { array[i++] = [name, value]; assert(value !== null); } return array.sort(compareHeaderName); } } }; var Headers2 = class _Headers { #guard; #headersList; constructor(init = void 0) { webidl.util.markAsUncloneable(this); if (init === kConstruct) { return; } this.#headersList = new HeadersList(); this.#guard = "none"; if (init !== void 0) { init = webidl.converters.HeadersInit(init, "Headers contructor", "init"); fill(this, init); } } // https://fetch.spec.whatwg.org/#dom-headers-append append(name, value) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 2, "Headers.append"); const prefix = "Headers.append"; name = webidl.converters.ByteString(name, prefix, "name"); value = webidl.converters.ByteString(value, prefix, "value"); return appendHeader(this, name, value); } // https://fetch.spec.whatwg.org/#dom-headers-delete delete(name) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 1, "Headers.delete"); const prefix = "Headers.delete"; name = webidl.converters.ByteString(name, prefix, "name"); if (!isValidHeaderName(name)) { throw webidl.errors.invalidArgument({ prefix: "Headers.delete", value: name, type: "header name" }); } if (this.#guard === "immutable") { throw new TypeError("immutable"); } if (!this.#headersList.contains(name, false)) { return; } this.#headersList.delete(name, false); } // https://fetch.spec.whatwg.org/#dom-headers-get get(name) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 1, "Headers.get"); const prefix = "Headers.get"; name = webidl.converters.ByteString(name, prefix, "name"); if (!isValidHeaderName(name)) { throw webidl.errors.invalidArgument({ prefix, value: name, type: "header name" }); } return this.#headersList.get(name, false); } // https://fetch.spec.whatwg.org/#dom-headers-has has(name) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 1, "Headers.has"); const prefix = "Headers.has"; name = webidl.converters.ByteString(name, prefix, "name"); if (!isValidHeaderName(name)) { throw webidl.errors.invalidArgument({ prefix, value: name, type: "header name" }); } return this.#headersList.contains(name, false); } // https://fetch.spec.whatwg.org/#dom-headers-set set(name, value) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 2, "Headers.set"); const prefix = "Headers.set"; name = webidl.converters.ByteString(name, prefix, "name"); value = webidl.converters.ByteString(value, prefix, "value"); value = headerValueNormalize(value); if (!isValidHeaderName(name)) { throw webidl.errors.invalidArgument({ prefix, value: name, type: "header name" }); } else if (!isValidHeaderValue(value)) { throw webidl.errors.invalidArgument({ prefix, value, type: "header value" }); } if (this.#guard === "immutable") { throw new TypeError("immutable"); } this.#headersList.set(name, value, false); } // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie getSetCookie() { webidl.brandCheck(this, _Headers); const list = this.#headersList.cookies; if (list) { return [...list]; } return []; } // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine get [kHeadersSortedMap]() { if (this.#headersList[kHeadersSortedMap]) { return this.#headersList[kHeadersSortedMap]; } const headers = []; const names = this.#headersList.toSortedArray(); const cookies = this.#headersList.cookies; if (cookies === null || cookies.length === 1) { return this.#headersList[kHeadersSortedMap] = names; } for (let i = 0; i < names.length; ++i) { const { 0: name, 1: value } = names[i]; if (name === "set-cookie") { for (let j = 0; j < cookies.length; ++j) { headers.push([name, cookies[j]]); } } else { headers.push([name, value]); } } return this.#headersList[kHeadersSortedMap] = headers; } [util2.inspect.custom](depth, options) { options.depth ??= depth; return `Headers ${util2.formatWithOptions(options, this.#headersList.entries)}`; } static getHeadersGuard(o) { return o.#guard; } static setHeadersGuard(o, guard) { o.#guard = guard; } static getHeadersList(o) { return o.#headersList; } static setHeadersList(o, list) { o.#headersList = list; } }; var { getHeadersGuard, setHeadersGuard, getHeadersList, setHeadersList } = Headers2; Reflect.deleteProperty(Headers2, "getHeadersGuard"); Reflect.deleteProperty(Headers2, "setHeadersGuard"); Reflect.deleteProperty(Headers2, "getHeadersList"); Reflect.deleteProperty(Headers2, "setHeadersList"); iteratorMixin("Headers", Headers2, kHeadersSortedMap, 0, 1); Object.defineProperties(Headers2.prototype, { append: kEnumerableProperty, delete: kEnumerableProperty, get: kEnumerableProperty, has: kEnumerableProperty, set: kEnumerableProperty, getSetCookie: kEnumerableProperty, [Symbol.toStringTag]: { value: "Headers", configurable: true }, [util2.inspect.custom]: { enumerable: false } }); webidl.converters.HeadersInit = function(V, prefix, argument) { if (webidl.util.Type(V) === "Object") { const iterator2 = Reflect.get(V, Symbol.iterator); if (!util2.types.isProxy(V) && iterator2 === Headers2.prototype.entries) { try { return getHeadersList(V).entriesList; } catch { } } if (typeof iterator2 === "function") { return webidl.converters["sequence>"](V, prefix, argument, iterator2.bind(V)); } return webidl.converters["record"](V, prefix, argument); } throw webidl.errors.conversionFailed({ prefix: "Headers constructor", argument: "Argument 1", types: ["sequence>", "record"] }); }; module2.exports = { fill, // for test. compareHeaderName, Headers: Headers2, HeadersList, getHeadersGuard, setHeadersGuard, setHeadersList, getHeadersList }; } }); // node_modules/undici/lib/web/fetch/response.js var require_response = __commonJS({ "node_modules/undici/lib/web/fetch/response.js"(exports2, module2) { "use strict"; var { Headers: Headers2, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers(); var { extractBody, cloneBody, mixinBody, hasFinalizationRegistry, streamRegistry, bodyUnusable } = require_body(); var util2 = require_util(); var nodeUtil = require("node:util"); var { kEnumerableProperty } = util2; var { isValidReasonPhrase, isCancelled, isAborted, isBlobLike, serializeJavascriptValueToJSONString, isErrorLike, isomorphicEncode, environmentSettingsObject: relevantRealm } = require_util2(); var { redirectStatusSet, nullBodyStatus } = require_constants3(); var { kState, kHeaders } = require_symbols2(); var { webidl } = require_webidl(); var { FormData } = require_formdata(); var { URLSerializer } = require_data_url(); var { kConstruct } = require_symbols(); var assert = require("node:assert"); var { types } = require("node:util"); var textEncoder = new TextEncoder("utf-8"); var Response = class _Response { // Creates network error Response. static error() { const responseObject = fromInnerResponse(makeNetworkError(), "immutable"); return responseObject; } // https://fetch.spec.whatwg.org/#dom-response-json static json(data, init = {}) { webidl.argumentLengthCheck(arguments, 1, "Response.json"); if (init !== null) { init = webidl.converters.ResponseInit(init); } const bytes = textEncoder.encode( serializeJavascriptValueToJSONString(data) ); const body = extractBody(bytes); const responseObject = fromInnerResponse(makeResponse({}), "response"); initializeResponse(responseObject, init, { body: body[0], type: "application/json" }); return responseObject; } // Creates a redirect Response that redirects to url with status status. static redirect(url, status = 302) { webidl.argumentLengthCheck(arguments, 1, "Response.redirect"); url = webidl.converters.USVString(url); status = webidl.converters["unsigned short"](status); let parsedURL; try { parsedURL = new URL(url, relevantRealm.settingsObject.baseUrl); } catch (err) { throw new TypeError(`Failed to parse URL from ${url}`, { cause: err }); } if (!redirectStatusSet.has(status)) { throw new RangeError(`Invalid status code ${status}`); } const responseObject = fromInnerResponse(makeResponse({}), "immutable"); responseObject[kState].status = status; const value = isomorphicEncode(URLSerializer(parsedURL)); responseObject[kState].headersList.append("location", value, true); return responseObject; } // https://fetch.spec.whatwg.org/#dom-response constructor(body = null, init = {}) { webidl.util.markAsUncloneable(this); if (body === kConstruct) { return; } if (body !== null) { body = webidl.converters.BodyInit(body); } init = webidl.converters.ResponseInit(init); this[kState] = makeResponse({}); this[kHeaders] = new Headers2(kConstruct); setHeadersGuard(this[kHeaders], "response"); setHeadersList(this[kHeaders], this[kState].headersList); let bodyWithType = null; if (body != null) { const [extractedBody, type] = extractBody(body); bodyWithType = { body: extractedBody, type }; } initializeResponse(this, init, bodyWithType); } // Returns response’s type, e.g., "cors". get type() { webidl.brandCheck(this, _Response); return this[kState].type; } // Returns response’s URL, if it has one; otherwise the empty string. get url() { webidl.brandCheck(this, _Response); const urlList = this[kState].urlList; const url = urlList[urlList.length - 1] ?? null; if (url === null) { return ""; } return URLSerializer(url, true); } // Returns whether response was obtained through a redirect. get redirected() { webidl.brandCheck(this, _Response); return this[kState].urlList.length > 1; } // Returns response’s status. get status() { webidl.brandCheck(this, _Response); return this[kState].status; } // Returns whether response’s status is an ok status. get ok() { webidl.brandCheck(this, _Response); return this[kState].status >= 200 && this[kState].status <= 299; } // Returns response’s status message. get statusText() { webidl.brandCheck(this, _Response); return this[kState].statusText; } // Returns response’s headers as Headers. get headers() { webidl.brandCheck(this, _Response); return this[kHeaders]; } get body() { webidl.brandCheck(this, _Response); return this[kState].body ? this[kState].body.stream : null; } get bodyUsed() { webidl.brandCheck(this, _Response); return !!this[kState].body && util2.isDisturbed(this[kState].body.stream); } // Returns a clone of response. clone() { webidl.brandCheck(this, _Response); if (bodyUnusable(this)) { throw webidl.errors.exception({ header: "Response.clone", message: "Body has already been consumed." }); } const clonedResponse = cloneResponse(this[kState]); if (hasFinalizationRegistry && this[kState].body?.stream) { streamRegistry.register(this, new WeakRef(this[kState].body.stream)); } return fromInnerResponse(clonedResponse, getHeadersGuard(this[kHeaders])); } [nodeUtil.inspect.custom](depth, options) { if (options.depth === null) { options.depth = 2; } options.colors ??= true; const properties = { 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 ${nodeUtil.formatWithOptions(options, properties)}`; } }; mixinBody(Response); Object.defineProperties(Response.prototype, { type: kEnumerableProperty, url: kEnumerableProperty, status: kEnumerableProperty, ok: kEnumerableProperty, redirected: kEnumerableProperty, statusText: kEnumerableProperty, headers: kEnumerableProperty, clone: kEnumerableProperty, body: kEnumerableProperty, bodyUsed: kEnumerableProperty, [Symbol.toStringTag]: { value: "Response", configurable: true } }); Object.defineProperties(Response, { json: kEnumerableProperty, redirect: kEnumerableProperty, error: kEnumerableProperty }); function cloneResponse(response) { if (response.internalResponse) { return filterResponse( cloneResponse(response.internalResponse), response.type ); } const newResponse = makeResponse({ ...response, body: null }); if (response.body != null) { newResponse.body = cloneBody(newResponse, response.body); } return newResponse; } function makeResponse(init) { return { aborted: false, rangeRequested: false, timingAllowPassed: false, requestIncludesCredentials: false, type: "default", status: 200, timingInfo: null, cacheState: "", statusText: "", ...init, headersList: init?.headersList ? new HeadersList(init?.headersList) : new HeadersList(), urlList: init?.urlList ? [...init.urlList] : [] }; } function makeNetworkError(reason) { const isError = isErrorLike(reason); return makeResponse({ type: "error", status: 0, error: isError ? reason : new Error(reason ? String(reason) : reason), aborted: reason && reason.name === "AbortError" }); } function isNetworkError(response) { return ( // A network error is a response whose type is "error", response.type === "error" && // status is 0 response.status === 0 ); } function makeFilteredResponse(response, state) { state = { internalResponse: response, ...state }; return new Proxy(response, { get(target, p) { return p in state ? state[p] : target[p]; }, set(target, p, value) { assert(!(p in state)); target[p] = value; return true; } }); } function filterResponse(response, type) { if (type === "basic") { return makeFilteredResponse(response, { type: "basic", headersList: response.headersList }); } else if (type === "cors") { return makeFilteredResponse(response, { type: "cors", headersList: response.headersList }); } else if (type === "opaque") { return makeFilteredResponse(response, { type: "opaque", urlList: Object.freeze([]), status: 0, statusText: "", body: null }); } else if (type === "opaqueredirect") { return makeFilteredResponse(response, { type: "opaqueredirect", status: 0, statusText: "", headersList: [], body: null }); } else { assert(false); } } function makeAppropriateNetworkError(fetchParams, err = null) { assert(isCancelled(fetchParams)); return isAborted(fetchParams) ? makeNetworkError(Object.assign(new DOMException("The operation was aborted.", "AbortError"), { cause: err })) : makeNetworkError(Object.assign(new DOMException("Request was cancelled."), { cause: err })); } function initializeResponse(response, init, body) { if (init.status !== null && (init.status < 200 || init.status > 599)) { throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.'); } if ("statusText" in init && init.statusText != null) { if (!isValidReasonPhrase(String(init.statusText))) { throw new TypeError("Invalid statusText"); } } if ("status" in init && init.status != null) { response[kState].status = init.status; } if ("statusText" in init && init.statusText != null) { response[kState].statusText = init.statusText; } if ("headers" in init && init.headers != null) { fill(response[kHeaders], init.headers); } if (body) { if (nullBodyStatus.includes(response.status)) { throw webidl.errors.exception({ header: "Response constructor", message: `Invalid response status code ${response.status}` }); } response[kState].body = body.body; if (body.type != null && !response[kState].headersList.contains("content-type", true)) { response[kState].headersList.append("content-type", body.type, true); } } } function fromInnerResponse(innerResponse, guard) { const response = new Response(kConstruct); response[kState] = innerResponse; response[kHeaders] = new Headers2(kConstruct); setHeadersList(response[kHeaders], innerResponse.headersList); setHeadersGuard(response[kHeaders], guard); if (hasFinalizationRegistry && innerResponse.body?.stream) { streamRegistry.register(response, new WeakRef(innerResponse.body.stream)); } return response; } webidl.converters.ReadableStream = webidl.interfaceConverter( ReadableStream ); webidl.converters.FormData = webidl.interfaceConverter( FormData ); webidl.converters.URLSearchParams = webidl.interfaceConverter( URLSearchParams ); webidl.converters.XMLHttpRequestBodyInit = function(V, prefix, name) { if (typeof V === "string") { return webidl.converters.USVString(V, prefix, name); } if (isBlobLike(V)) { return webidl.converters.Blob(V, prefix, name, { strict: false }); } if (ArrayBuffer.isView(V) || types.isArrayBuffer(V)) { return webidl.converters.BufferSource(V, prefix, name); } if (util2.isFormDataLike(V)) { return webidl.converters.FormData(V, prefix, name, { strict: false }); } if (V instanceof URLSearchParams) { return webidl.converters.URLSearchParams(V, prefix, name); } return webidl.converters.DOMString(V, prefix, name); }; webidl.converters.BodyInit = function(V, prefix, argument) { if (V instanceof ReadableStream) { return webidl.converters.ReadableStream(V, prefix, argument); } if (V?.[Symbol.asyncIterator]) { return V; } return webidl.converters.XMLHttpRequestBodyInit(V, prefix, argument); }; webidl.converters.ResponseInit = webidl.dictionaryConverter([ { key: "status", converter: webidl.converters["unsigned short"], defaultValue: () => 200 }, { key: "statusText", converter: webidl.converters.ByteString, defaultValue: () => "" }, { key: "headers", converter: webidl.converters.HeadersInit } ]); module2.exports = { isNetworkError, makeNetworkError, makeResponse, makeAppropriateNetworkError, filterResponse, Response, cloneResponse, fromInnerResponse }; } }); // node_modules/undici/lib/web/fetch/dispatcher-weakref.js var require_dispatcher_weakref = __commonJS({ "node_modules/undici/lib/web/fetch/dispatcher-weakref.js"(exports2, module2) { "use strict"; var { kConnected, kSize } = require_symbols(); var CompatWeakRef = class { constructor(value) { this.value = value; } deref() { return this.value[kConnected] === 0 && this.value[kSize] === 0 ? void 0 : this.value; } }; var CompatFinalizer = class { constructor(finalizer) { this.finalizer = finalizer; } register(dispatcher, key) { if (dispatcher.on) { dispatcher.on("disconnect", () => { if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) { this.finalizer(key); } }); } } unregister(key) { } }; module2.exports = function() { if (process.env.NODE_V8_COVERAGE && process.version.startsWith("v18")) { process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"); return { WeakRef: CompatWeakRef, FinalizationRegistry: CompatFinalizer }; } return { WeakRef, FinalizationRegistry }; }; } }); // node_modules/undici/lib/web/fetch/request.js var require_request2 = __commonJS({ "node_modules/undici/lib/web/fetch/request.js"(exports2, module2) { "use strict"; var { extractBody, mixinBody, cloneBody, bodyUnusable } = require_body(); var { Headers: Headers2, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers(); var { FinalizationRegistry: FinalizationRegistry2 } = require_dispatcher_weakref()(); var util2 = require_util(); var nodeUtil = require("node:util"); var { isValidHTTPToken, sameOrigin, environmentSettingsObject } = require_util2(); var { forbiddenMethodsSet, corsSafeListedMethodsSet, referrerPolicy, requestRedirect, requestMode, requestCredentials, requestCache, requestDuplex } = require_constants3(); var { kEnumerableProperty, normalizedMethodRecordsBase, normalizedMethodRecords } = util2; var { kHeaders, kSignal, kState, kDispatcher } = require_symbols2(); var { webidl } = require_webidl(); var { URLSerializer } = require_data_url(); var { kConstruct } = require_symbols(); var assert = require("node:assert"); var { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require("node:events"); var kAbortController = /* @__PURE__ */ Symbol("abortController"); var requestFinalizer = new FinalizationRegistry2(({ signal, abort }) => { signal.removeEventListener("abort", abort); }); var dependentControllerMap = /* @__PURE__ */ new WeakMap(); function buildAbort(acRef) { return abort; function abort() { const ac = acRef.deref(); if (ac !== void 0) { requestFinalizer.unregister(abort); this.removeEventListener("abort", abort); ac.abort(this.reason); const controllerList = dependentControllerMap.get(ac.signal); if (controllerList !== void 0) { if (controllerList.size !== 0) { for (const ref of controllerList) { const ctrl = ref.deref(); if (ctrl !== void 0) { ctrl.abort(this.reason); } } controllerList.clear(); } dependentControllerMap.delete(ac.signal); } } } } var patchMethodWarning = false; var Request = class _Request { // https://fetch.spec.whatwg.org/#dom-request constructor(input, init = {}) { webidl.util.markAsUncloneable(this); if (input === kConstruct) { return; } const prefix = "Request constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); input = webidl.converters.RequestInfo(input, prefix, "input"); init = webidl.converters.RequestInit(init, prefix, "init"); let request2 = null; let fallbackMode = null; const baseUrl = environmentSettingsObject.settingsObject.baseUrl; let signal = null; if (typeof input === "string") { this[kDispatcher] = init.dispatcher; let parsedURL; try { parsedURL = new URL(input, baseUrl); } catch (err) { throw new TypeError("Failed to parse URL from " + input, { cause: err }); } if (parsedURL.username || parsedURL.password) { throw new TypeError( "Request cannot be constructed from a URL that includes credentials: " + input ); } request2 = makeRequest({ urlList: [parsedURL] }); fallbackMode = "cors"; } else { this[kDispatcher] = init.dispatcher || input[kDispatcher]; assert(input instanceof _Request); request2 = input[kState]; signal = input[kSignal]; } const origin = environmentSettingsObject.settingsObject.origin; let window = "client"; if (request2.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request2.window, origin)) { window = request2.window; } if (init.window != null) { throw new TypeError(`'window' option '${window}' must be null`); } if ("window" in init) { window = "no-window"; } request2 = makeRequest({ // URL request’s URL. // undici implementation note: this is set as the first item in request's urlList in makeRequest // method request’s method. method: request2.method, // header list A copy of request’s header list. // undici implementation note: headersList is cloned in makeRequest headersList: request2.headersList, // unsafe-request flag Set. unsafeRequest: request2.unsafeRequest, // client This’s relevant settings object. client: environmentSettingsObject.settingsObject, // window window. window, // priority request’s priority. priority: request2.priority, // origin request’s origin. The propagation of the origin is only significant for navigation requests // being handled by a service worker. In this scenario a request can have an origin that is different // from the current client. origin: request2.origin, // referrer request’s referrer. referrer: request2.referrer, // referrer policy request’s referrer policy. referrerPolicy: request2.referrerPolicy, // mode request’s mode. mode: request2.mode, // credentials mode request’s credentials mode. credentials: request2.credentials, // cache mode request’s cache mode. cache: request2.cache, // redirect mode request’s redirect mode. redirect: request2.redirect, // integrity metadata request’s integrity metadata. integrity: request2.integrity, // keepalive request’s keepalive. keepalive: request2.keepalive, // reload-navigation flag request’s reload-navigation flag. reloadNavigation: request2.reloadNavigation, // history-navigation flag request’s history-navigation flag. historyNavigation: request2.historyNavigation, // URL list A clone of request’s URL list. urlList: [...request2.urlList] }); const initHasKey = Object.keys(init).length !== 0; if (initHasKey) { if (request2.mode === "navigate") { request2.mode = "same-origin"; } request2.reloadNavigation = false; request2.historyNavigation = false; request2.origin = "client"; request2.referrer = "client"; request2.referrerPolicy = ""; request2.url = request2.urlList[request2.urlList.length - 1]; request2.urlList = [request2.url]; } if (init.referrer !== void 0) { const referrer = init.referrer; if (referrer === "") { request2.referrer = "no-referrer"; } else { let parsedReferrer; try { parsedReferrer = new URL(referrer, baseUrl); } catch (err) { throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err }); } if (parsedReferrer.protocol === "about:" && parsedReferrer.hostname === "client" || origin && !sameOrigin(parsedReferrer, environmentSettingsObject.settingsObject.baseUrl)) { request2.referrer = "client"; } else { request2.referrer = parsedReferrer; } } } if (init.referrerPolicy !== void 0) { request2.referrerPolicy = init.referrerPolicy; } let mode; if (init.mode !== void 0) { mode = init.mode; } else { mode = fallbackMode; } if (mode === "navigate") { throw webidl.errors.exception({ header: "Request constructor", message: "invalid request mode navigate." }); } if (mode != null) { request2.mode = mode; } if (init.credentials !== void 0) { request2.credentials = init.credentials; } if (init.cache !== void 0) { request2.cache = init.cache; } if (request2.cache === "only-if-cached" && request2.mode !== "same-origin") { throw new TypeError( "'only-if-cached' can be set only with 'same-origin' mode" ); } if (init.redirect !== void 0) { request2.redirect = init.redirect; } if (init.integrity != null) { request2.integrity = String(init.integrity); } if (init.keepalive !== void 0) { request2.keepalive = Boolean(init.keepalive); } if (init.method !== void 0) { let method = init.method; const mayBeNormalized = normalizedMethodRecords[method]; if (mayBeNormalized !== void 0) { request2.method = mayBeNormalized; } else { if (!isValidHTTPToken(method)) { throw new TypeError(`'${method}' is not a valid HTTP method.`); } const upperCase = method.toUpperCase(); if (forbiddenMethodsSet.has(upperCase)) { throw new TypeError(`'${method}' HTTP method is unsupported.`); } method = normalizedMethodRecordsBase[upperCase] ?? method; request2.method = method; } if (!patchMethodWarning && request2.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" }); patchMethodWarning = true; } } if (init.signal !== void 0) { signal = init.signal; } this[kState] = request2; const ac = new AbortController(); this[kSignal] = ac.signal; if (signal != null) { if (!signal || typeof signal.aborted !== "boolean" || typeof signal.addEventListener !== "function") { throw new TypeError( "Failed to construct 'Request': member signal is not of type AbortSignal." ); } if (signal.aborted) { ac.abort(signal.reason); } else { this[kAbortController] = ac; const acRef = new WeakRef(ac); const abort = buildAbort(acRef); try { if (typeof getMaxListeners === "function" && getMaxListeners(signal) === defaultMaxListeners) { setMaxListeners(1500, signal); } else if (getEventListeners(signal, "abort").length >= defaultMaxListeners) { setMaxListeners(1500, signal); } } catch { } util2.addAbortListener(signal, abort); requestFinalizer.register(ac, { signal, abort }, abort); } } this[kHeaders] = new Headers2(kConstruct); setHeadersList(this[kHeaders], request2.headersList); setHeadersGuard(this[kHeaders], "request"); if (mode === "no-cors") { if (!corsSafeListedMethodsSet.has(request2.method)) { throw new TypeError( `'${request2.method} is unsupported in no-cors mode.` ); } setHeadersGuard(this[kHeaders], "request-no-cors"); } if (initHasKey) { const headersList = getHeadersList(this[kHeaders]); const headers = init.headers !== void 0 ? init.headers : new HeadersList(headersList); headersList.clear(); if (headers instanceof HeadersList) { for (const { name, value } of headers.rawValues()) { headersList.append(name, value, false); } headersList.cookies = headers.cookies; } else { fillHeaders(this[kHeaders], headers); } } const inputBody = input instanceof _Request ? input[kState].body : null; if ((init.body != null || inputBody != null) && (request2.method === "GET" || request2.method === "HEAD")) { throw new TypeError("Request with GET/HEAD method cannot have body."); } let initBody = null; if (init.body != null) { const [extractedBody, contentType] = extractBody( init.body, request2.keepalive ); initBody = extractedBody; if (contentType && !getHeadersList(this[kHeaders]).contains("content-type", true)) { this[kHeaders].append("content-type", contentType); } } const inputOrInitBody = initBody ?? inputBody; if (inputOrInitBody != null && inputOrInitBody.source == null) { if (initBody != null && init.duplex == null) { throw new TypeError("RequestInit: duplex option is required when sending a body."); } if (request2.mode !== "same-origin" && request2.mode !== "cors") { throw new TypeError( 'If request is made from ReadableStream, mode should be "same-origin" or "cors"' ); } request2.useCORSPreflightFlag = true; } let finalBody = inputOrInitBody; if (initBody == null && inputBody != null) { if (bodyUnusable(input)) { throw new TypeError( "Cannot construct a Request with a Request object that has already been used." ); } const identityTransform = new TransformStream(); inputBody.stream.pipeThrough(identityTransform); finalBody = { source: inputBody.source, length: inputBody.length, stream: identityTransform.readable }; } this[kState].body = finalBody; } // Returns request’s HTTP method, which is "GET" by default. get method() { webidl.brandCheck(this, _Request); return this[kState].method; } // Returns the URL of request as a string. get url() { webidl.brandCheck(this, _Request); return URLSerializer(this[kState].url); } // Returns a Headers object consisting of the headers associated with request. // Note that headers added in the network layer by the user agent will not // be accounted for in this object, e.g., the "Host" header. get headers() { webidl.brandCheck(this, _Request); return this[kHeaders]; } // Returns the kind of resource requested by request, e.g., "document" // or "script". get destination() { webidl.brandCheck(this, _Request); return this[kState].destination; } // Returns the referrer of request. Its value can be a same-origin URL if // explicitly set in init, the empty string to indicate no referrer, and // "about:client" when defaulting to the global’s default. This is used // during fetching to determine the value of the `Referer` header of the // request being made. get referrer() { webidl.brandCheck(this, _Request); if (this[kState].referrer === "no-referrer") { return ""; } if (this[kState].referrer === "client") { return "about:client"; } return this[kState].referrer.toString(); } // Returns the referrer policy associated with request. // This is used during fetching to compute the value of the request’s // referrer. get referrerPolicy() { webidl.brandCheck(this, _Request); return this[kState].referrerPolicy; } // Returns the mode associated with request, which is a string indicating // whether the request will use CORS, or will be restricted to same-origin // URLs. get mode() { webidl.brandCheck(this, _Request); return this[kState].mode; } // Returns the credentials mode associated with request, // which is a string indicating whether credentials will be sent with the // request always, never, or only when sent to a same-origin URL. get credentials() { return this[kState].credentials; } // Returns the cache mode associated with request, // which is a string indicating how the request will // interact with the browser’s cache when fetching. get cache() { webidl.brandCheck(this, _Request); return this[kState].cache; } // Returns the redirect mode associated with request, // which is a string indicating how redirects for the // request will be handled during fetching. A request // will follow redirects by default. get redirect() { webidl.brandCheck(this, _Request); return this[kState].redirect; } // Returns request’s subresource integrity metadata, which is a // cryptographic hash of the resource being fetched. Its value // consists of multiple hashes separated by whitespace. [SRI] get integrity() { webidl.brandCheck(this, _Request); return this[kState].integrity; } // Returns a boolean indicating whether or not request can outlive the // global in which it was created. get keepalive() { webidl.brandCheck(this, _Request); return this[kState].keepalive; } // Returns a boolean indicating whether or not request is for a reload // navigation. get isReloadNavigation() { webidl.brandCheck(this, _Request); return this[kState].reloadNavigation; } // Returns a boolean indicating whether or not request is for a history // navigation (a.k.a. back-forward navigation). get isHistoryNavigation() { webidl.brandCheck(this, _Request); return this[kState].historyNavigation; } // Returns the signal associated with request, which is an AbortSignal // object indicating whether or not request has been aborted, and its // abort event handler. get signal() { webidl.brandCheck(this, _Request); return this[kSignal]; } get body() { webidl.brandCheck(this, _Request); return this[kState].body ? this[kState].body.stream : null; } get bodyUsed() { webidl.brandCheck(this, _Request); return !!this[kState].body && util2.isDisturbed(this[kState].body.stream); } get duplex() { webidl.brandCheck(this, _Request); return "half"; } // Returns a clone of request. clone() { webidl.brandCheck(this, _Request); if (bodyUnusable(this)) { throw new TypeError("unusable"); } const clonedRequest = cloneRequest(this[kState]); const ac = new AbortController(); if (this.signal.aborted) { ac.abort(this.signal.reason); } else { let list = dependentControllerMap.get(this.signal); if (list === void 0) { list = /* @__PURE__ */ new Set(); dependentControllerMap.set(this.signal, list); } const acRef = new WeakRef(ac); list.add(acRef); util2.addAbortListener( ac.signal, buildAbort(acRef) ); } return fromInnerRequest(clonedRequest, ac.signal, getHeadersGuard(this[kHeaders])); } [nodeUtil.inspect.custom](depth, options) { if (options.depth === null) { options.depth = 2; } options.colors ??= true; const properties = { 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 ${nodeUtil.formatWithOptions(options, properties)}`; } }; mixinBody(Request); function makeRequest(init) { return { method: init.method ?? "GET", localURLsOnly: init.localURLsOnly ?? false, unsafeRequest: init.unsafeRequest ?? false, body: init.body ?? null, client: init.client ?? null, reservedClient: init.reservedClient ?? null, replacesClientId: init.replacesClientId ?? "", window: init.window ?? "client", keepalive: init.keepalive ?? false, serviceWorkers: init.serviceWorkers ?? "all", initiator: init.initiator ?? "", destination: init.destination ?? "", priority: init.priority ?? null, origin: init.origin ?? "client", policyContainer: init.policyContainer ?? "client", referrer: init.referrer ?? "client", referrerPolicy: init.referrerPolicy ?? "", mode: init.mode ?? "no-cors", useCORSPreflightFlag: init.useCORSPreflightFlag ?? false, credentials: init.credentials ?? "same-origin", useCredentials: init.useCredentials ?? false, cache: init.cache ?? "default", redirect: init.redirect ?? "follow", integrity: init.integrity ?? "", cryptoGraphicsNonceMetadata: init.cryptoGraphicsNonceMetadata ?? "", parserMetadata: init.parserMetadata ?? "", reloadNavigation: init.reloadNavigation ?? false, historyNavigation: init.historyNavigation ?? false, userActivation: init.userActivation ?? false, taintedOrigin: init.taintedOrigin ?? false, redirectCount: init.redirectCount ?? 0, responseTainting: init.responseTainting ?? "basic", preventNoCacheCacheControlHeaderModification: init.preventNoCacheCacheControlHeaderModification ?? false, done: init.done ?? false, timingAllowFailed: init.timingAllowFailed ?? false, urlList: init.urlList, url: init.urlList[0], headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList() }; } function cloneRequest(request2) { const newRequest = makeRequest({ ...request2, body: null }); if (request2.body != null) { newRequest.body = cloneBody(newRequest, request2.body); } return newRequest; } function fromInnerRequest(innerRequest, signal, guard) { const request2 = new Request(kConstruct); request2[kState] = innerRequest; request2[kSignal] = signal; request2[kHeaders] = new Headers2(kConstruct); setHeadersList(request2[kHeaders], innerRequest.headersList); setHeadersGuard(request2[kHeaders], guard); return request2; } Object.defineProperties(Request.prototype, { method: kEnumerableProperty, url: kEnumerableProperty, headers: kEnumerableProperty, redirect: kEnumerableProperty, clone: kEnumerableProperty, signal: kEnumerableProperty, duplex: kEnumerableProperty, destination: kEnumerableProperty, body: kEnumerableProperty, bodyUsed: kEnumerableProperty, isHistoryNavigation: kEnumerableProperty, isReloadNavigation: kEnumerableProperty, keepalive: kEnumerableProperty, integrity: kEnumerableProperty, cache: kEnumerableProperty, credentials: kEnumerableProperty, attribute: kEnumerableProperty, referrerPolicy: kEnumerableProperty, referrer: kEnumerableProperty, mode: kEnumerableProperty, [Symbol.toStringTag]: { value: "Request", configurable: true } }); webidl.converters.Request = webidl.interfaceConverter( Request ); webidl.converters.RequestInfo = function(V, prefix, argument) { if (typeof V === "string") { return webidl.converters.USVString(V, prefix, argument); } if (V instanceof Request) { return webidl.converters.Request(V, prefix, argument); } return webidl.converters.USVString(V, prefix, argument); }; webidl.converters.AbortSignal = webidl.interfaceConverter( AbortSignal ); webidl.converters.RequestInit = webidl.dictionaryConverter([ { key: "method", converter: webidl.converters.ByteString }, { key: "headers", converter: webidl.converters.HeadersInit }, { key: "body", converter: webidl.nullableConverter( webidl.converters.BodyInit ) }, { key: "referrer", converter: webidl.converters.USVString }, { key: "referrerPolicy", converter: webidl.converters.DOMString, // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy allowedValues: referrerPolicy }, { key: "mode", converter: webidl.converters.DOMString, // https://fetch.spec.whatwg.org/#concept-request-mode allowedValues: requestMode }, { key: "credentials", converter: webidl.converters.DOMString, // https://fetch.spec.whatwg.org/#requestcredentials allowedValues: requestCredentials }, { key: "cache", converter: webidl.converters.DOMString, // https://fetch.spec.whatwg.org/#requestcache allowedValues: requestCache }, { key: "redirect", converter: webidl.converters.DOMString, // https://fetch.spec.whatwg.org/#requestredirect allowedValues: requestRedirect }, { key: "integrity", converter: webidl.converters.DOMString }, { key: "keepalive", converter: webidl.converters.boolean }, { key: "signal", converter: webidl.nullableConverter( (signal) => webidl.converters.AbortSignal( signal, "RequestInit", "signal", { strict: false } ) ) }, { key: "window", converter: webidl.converters.any }, { key: "duplex", converter: webidl.converters.DOMString, allowedValues: requestDuplex }, { key: "dispatcher", // undici specific option converter: webidl.converters.any } ]); module2.exports = { Request, makeRequest, fromInnerRequest, cloneRequest }; } }); // node_modules/undici/lib/web/fetch/index.js var require_fetch = __commonJS({ "node_modules/undici/lib/web/fetch/index.js"(exports2, module2) { "use strict"; var { makeNetworkError, makeAppropriateNetworkError, filterResponse, makeResponse, fromInnerResponse } = require_response(); var { HeadersList } = require_headers(); var { Request, cloneRequest } = require_request2(); var zlib = require("node:zlib"); var { bytesMatch, makePolicyContainer, clonePolicyContainer, requestBadPort, TAOCheck, appendRequestOriginHeader, responseLocationURL, requestCurrentURL, setRequestReferrerPolicyOnRedirect, tryUpgradeRequestToAPotentiallyTrustworthyURL, createOpaqueTimingInfo, appendFetchMetadata, corsCheck, crossOriginResourcePolicyCheck, determineRequestsReferrer, coarsenedSharedCurrentTime, createDeferredPromise, isBlobLike, sameOrigin, isCancelled, isAborted, isErrorLike, fullyReadBody, readableStreamClose, isomorphicEncode, urlIsLocal, urlIsHttpHttpsScheme, urlHasHttpsScheme, clampAndCoarsenConnectionTimingInfo, simpleRangeHeaderValue, buildContentRange, createInflate, extractMimeType } = require_util2(); var { kState, kDispatcher } = require_symbols2(); var assert = require("node:assert"); var { safelyExtractBody, extractBody } = require_body(); var { redirectStatusSet, nullBodyStatus, safeMethodsSet, requestBodyHeader, subresourceSet } = require_constants3(); var EE = require("node:events"); var { Readable, pipeline: pipeline2, finished } = require("node:stream"); var { addAbortListener, isErrored, isReadable, bufferToLowerCasedHeaderName } = require_util(); var { dataURLProcessor, serializeAMimeType, minimizeSupportedMimeType } = require_data_url(); var { getGlobalDispatcher } = require_global2(); var { webidl } = require_webidl(); var { STATUS_CODES } = require("node:http"); var GET_OR_HEAD = ["GET", "HEAD"]; var defaultUserAgent = typeof __UNDICI_IS_NODE__ !== "undefined" || typeof esbuildDetection !== "undefined" ? "node" : "undici"; var resolveObjectURL; var Fetch = class extends EE { constructor(dispatcher) { super(); this.dispatcher = dispatcher; this.connection = null; this.dump = false; this.state = "ongoing"; } terminate(reason) { if (this.state !== "ongoing") { return; } this.state = "terminated"; this.connection?.destroy(reason); this.emit("terminated", reason); } // https://fetch.spec.whatwg.org/#fetch-controller-abort abort(error) { if (this.state !== "ongoing") { return; } this.state = "aborted"; if (!error) { error = new DOMException("The operation was aborted.", "AbortError"); } this.serializedAbortReason = error; this.connection?.destroy(error); this.emit("terminated", error); } }; function handleFetchDone(response) { finalizeAndReportTiming(response, "fetch"); } function fetch(input, init = void 0) { webidl.argumentLengthCheck(arguments, 1, "globalThis.fetch"); let p = createDeferredPromise(); let requestObject; try { requestObject = new Request(input, init); } catch (e) { p.reject(e); return p.promise; } const request2 = requestObject[kState]; if (requestObject.signal.aborted) { abortFetch(p, request2, null, requestObject.signal.reason); return p.promise; } const globalObject = request2.client.globalObject; if (globalObject?.constructor?.name === "ServiceWorkerGlobalScope") { request2.serviceWorkers = "none"; } let responseObject = null; let locallyAborted = false; let controller = null; addAbortListener( requestObject.signal, () => { locallyAborted = true; assert(controller != null); controller.abort(requestObject.signal.reason); const realResponse = responseObject?.deref(); abortFetch(p, request2, realResponse, requestObject.signal.reason); } ); const processResponse = (response) => { if (locallyAborted) { return; } if (response.aborted) { abortFetch(p, request2, responseObject, controller.serializedAbortReason); return; } if (response.type === "error") { p.reject(new TypeError("fetch failed", { cause: response.error })); return; } responseObject = new WeakRef(fromInnerResponse(response, "immutable")); p.resolve(responseObject.deref()); p = null; }; controller = fetching({ request: request2, processResponseEndOfBody: handleFetchDone, processResponse, dispatcher: requestObject[kDispatcher] // undici }); return p.promise; } function finalizeAndReportTiming(response, initiatorType = "other") { if (response.type === "error" && response.aborted) { return; } if (!response.urlList?.length) { return; } const originalURL = response.urlList[0]; let timingInfo = response.timingInfo; let cacheState = response.cacheState; if (!urlIsHttpHttpsScheme(originalURL)) { return; } if (timingInfo === null) { return; } if (!response.timingAllowPassed) { timingInfo = createOpaqueTimingInfo({ startTime: timingInfo.startTime }); cacheState = ""; } timingInfo.endTime = coarsenedSharedCurrentTime(); response.timingInfo = timingInfo; markResourceTiming( timingInfo, originalURL.href, initiatorType, globalThis, cacheState ); } var markResourceTiming = performance.markResourceTiming; function abortFetch(p, request2, responseObject, error) { if (p) { p.reject(error); } if (request2.body != null && isReadable(request2.body?.stream)) { request2.body.stream.cancel(error).catch((err) => { if (err.code === "ERR_INVALID_STATE") { return; } throw err; }); } if (responseObject == null) { return; } const response = responseObject[kState]; if (response.body != null && isReadable(response.body?.stream)) { response.body.stream.cancel(error).catch((err) => { if (err.code === "ERR_INVALID_STATE") { return; } throw err; }); } } function fetching({ request: request2, processRequestBodyChunkLength, processRequestEndOfBody, processResponse, processResponseEndOfBody, processResponseConsumeBody, useParallelQueue = false, dispatcher = getGlobalDispatcher() // undici }) { assert(dispatcher); let taskDestination = null; let crossOriginIsolatedCapability = false; if (request2.client != null) { taskDestination = request2.client.globalObject; crossOriginIsolatedCapability = request2.client.crossOriginIsolatedCapability; } const currentTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability); const timingInfo = createOpaqueTimingInfo({ startTime: currentTime }); const fetchParams = { controller: new Fetch(dispatcher), request: request2, timingInfo, processRequestBodyChunkLength, processRequestEndOfBody, processResponse, processResponseConsumeBody, processResponseEndOfBody, taskDestination, crossOriginIsolatedCapability }; assert(!request2.body || request2.body.stream); if (request2.window === "client") { request2.window = request2.client?.globalObject?.constructor?.name === "Window" ? request2.client : "no-window"; } if (request2.origin === "client") { request2.origin = request2.client.origin; } if (request2.policyContainer === "client") { if (request2.client != null) { request2.policyContainer = clonePolicyContainer( request2.client.policyContainer ); } else { request2.policyContainer = makePolicyContainer(); } } if (!request2.headersList.contains("accept", true)) { const value = "*/*"; request2.headersList.append("accept", value, true); } if (!request2.headersList.contains("accept-language", true)) { request2.headersList.append("accept-language", "*", true); } if (request2.priority === null) { } if (subresourceSet.has(request2.destination)) { } mainFetch(fetchParams).catch((err) => { fetchParams.controller.terminate(err); }); return fetchParams.controller; } async function mainFetch(fetchParams, recursive = false) { const request2 = fetchParams.request; let response = null; if (request2.localURLsOnly && !urlIsLocal(requestCurrentURL(request2))) { response = makeNetworkError("local URLs only"); } tryUpgradeRequestToAPotentiallyTrustworthyURL(request2); if (requestBadPort(request2) === "blocked") { response = makeNetworkError("bad port"); } if (request2.referrerPolicy === "") { request2.referrerPolicy = request2.policyContainer.referrerPolicy; } if (request2.referrer !== "no-referrer") { request2.referrer = determineRequestsReferrer(request2); } if (response === null) { response = await (async () => { const currentURL = requestCurrentURL(request2); if ( // - request’s current URL’s origin is same origin with request’s origin, // and request’s response tainting is "basic" sameOrigin(currentURL, request2.url) && request2.responseTainting === "basic" || // request’s current URL’s scheme is "data" currentURL.protocol === "data:" || // - request’s mode is "navigate" or "websocket" (request2.mode === "navigate" || request2.mode === "websocket") ) { request2.responseTainting = "basic"; return await schemeFetch(fetchParams); } if (request2.mode === "same-origin") { return makeNetworkError('request mode cannot be "same-origin"'); } if (request2.mode === "no-cors") { if (request2.redirect !== "follow") { return makeNetworkError( 'redirect mode cannot be "follow" for "no-cors" request' ); } request2.responseTainting = "opaque"; return await schemeFetch(fetchParams); } if (!urlIsHttpHttpsScheme(requestCurrentURL(request2))) { return makeNetworkError("URL scheme must be a HTTP(S) scheme"); } request2.responseTainting = "cors"; return await httpFetch(fetchParams); })(); } if (recursive) { return response; } if (response.status !== 0 && !response.internalResponse) { if (request2.responseTainting === "cors") { } if (request2.responseTainting === "basic") { response = filterResponse(response, "basic"); } else if (request2.responseTainting === "cors") { response = filterResponse(response, "cors"); } else if (request2.responseTainting === "opaque") { response = filterResponse(response, "opaque"); } else { assert(false); } } let internalResponse = response.status === 0 ? response : response.internalResponse; if (internalResponse.urlList.length === 0) { internalResponse.urlList.push(...request2.urlList); } if (!request2.timingAllowFailed) { response.timingAllowPassed = true; } if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request2.headers.contains("range", true)) { response = internalResponse = makeNetworkError(); } if (response.status !== 0 && (request2.method === "HEAD" || request2.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) { internalResponse.body = null; fetchParams.controller.dump = true; } if (request2.integrity) { const processBodyError = (reason) => fetchFinale(fetchParams, makeNetworkError(reason)); if (request2.responseTainting === "opaque" || response.body == null) { processBodyError(response.error); return; } const processBody = (bytes) => { if (!bytesMatch(bytes, request2.integrity)) { processBodyError("integrity mismatch"); return; } response.body = safelyExtractBody(bytes)[0]; fetchFinale(fetchParams, response); }; await fullyReadBody(response.body, processBody, processBodyError); } else { fetchFinale(fetchParams, response); } } function schemeFetch(fetchParams) { if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) { return Promise.resolve(makeAppropriateNetworkError(fetchParams)); } const { request: request2 } = fetchParams; const { protocol: scheme } = requestCurrentURL(request2); switch (scheme) { case "about:": { return Promise.resolve(makeNetworkError("about scheme is not supported")); } case "blob:": { if (!resolveObjectURL) { resolveObjectURL = require("node:buffer").resolveObjectURL; } const blobURLEntry = requestCurrentURL(request2); if (blobURLEntry.search.length !== 0) { return Promise.resolve(makeNetworkError("NetworkError when attempting to fetch resource.")); } const blob = resolveObjectURL(blobURLEntry.toString()); if (request2.method !== "GET" || !isBlobLike(blob)) { return Promise.resolve(makeNetworkError("invalid method")); } const response = makeResponse(); const fullLength = blob.size; const serializedFullLength = isomorphicEncode(`${fullLength}`); const type = blob.type; if (!request2.headersList.contains("range", true)) { const bodyWithType = extractBody(blob); response.statusText = "OK"; response.body = bodyWithType[0]; response.headersList.set("content-length", serializedFullLength, true); response.headersList.set("content-type", type, true); } else { response.rangeRequested = true; const rangeHeader = request2.headersList.get("range", true); const rangeValue = simpleRangeHeaderValue(rangeHeader, true); if (rangeValue === "failure") { return Promise.resolve(makeNetworkError("failed to fetch the data URL")); } let { rangeStartValue: rangeStart, rangeEndValue: rangeEnd } = rangeValue; if (rangeStart === null) { rangeStart = fullLength - rangeEnd; rangeEnd = rangeStart + rangeEnd - 1; } else { if (rangeStart >= fullLength) { return Promise.resolve(makeNetworkError("Range start is greater than the blob's size.")); } if (rangeEnd === null || rangeEnd >= fullLength) { rangeEnd = fullLength - 1; } } const slicedBlob = blob.slice(rangeStart, rangeEnd, type); const slicedBodyWithType = extractBody(slicedBlob); response.body = slicedBodyWithType[0]; const serializedSlicedLength = isomorphicEncode(`${slicedBlob.size}`); const contentRange = buildContentRange(rangeStart, rangeEnd, fullLength); response.status = 206; response.statusText = "Partial Content"; response.headersList.set("content-length", serializedSlicedLength, true); response.headersList.set("content-type", type, true); response.headersList.set("content-range", contentRange, true); } return Promise.resolve(response); } case "data:": { const currentURL = requestCurrentURL(request2); const dataURLStruct = dataURLProcessor(currentURL); if (dataURLStruct === "failure") { return Promise.resolve(makeNetworkError("failed to fetch the data URL")); } const mimeType = serializeAMimeType(dataURLStruct.mimeType); return Promise.resolve(makeResponse({ statusText: "OK", headersList: [ ["content-type", { name: "Content-Type", value: mimeType }] ], body: safelyExtractBody(dataURLStruct.body)[0] })); } case "file:": { return Promise.resolve(makeNetworkError("not implemented... yet...")); } case "http:": case "https:": { return httpFetch(fetchParams).catch((err) => makeNetworkError(err)); } default: { return Promise.resolve(makeNetworkError("unknown scheme")); } } } function finalizeResponse(fetchParams, response) { fetchParams.request.done = true; if (fetchParams.processResponseDone != null) { queueMicrotask(() => fetchParams.processResponseDone(response)); } } function fetchFinale(fetchParams, response) { let timingInfo = fetchParams.timingInfo; const processResponseEndOfBody = () => { const unsafeEndTime = Date.now(); if (fetchParams.request.destination === "document") { fetchParams.controller.fullTimingInfo = timingInfo; } fetchParams.controller.reportTimingSteps = () => { if (fetchParams.request.url.protocol !== "https:") { return; } timingInfo.endTime = unsafeEndTime; let cacheState = response.cacheState; const bodyInfo = response.bodyInfo; if (!response.timingAllowPassed) { timingInfo = createOpaqueTimingInfo(timingInfo); cacheState = ""; } let responseStatus = 0; if (fetchParams.request.mode !== "navigator" || !response.hasCrossOriginRedirects) { responseStatus = response.status; const mimeType = extractMimeType(response.headersList); if (mimeType !== "failure") { bodyInfo.contentType = minimizeSupportedMimeType(mimeType); } } if (fetchParams.request.initiatorType != null) { markResourceTiming(timingInfo, fetchParams.request.url.href, fetchParams.request.initiatorType, globalThis, cacheState, bodyInfo, responseStatus); } }; const processResponseEndOfBodyTask = () => { fetchParams.request.done = true; if (fetchParams.processResponseEndOfBody != null) { queueMicrotask(() => fetchParams.processResponseEndOfBody(response)); } if (fetchParams.request.initiatorType != null) { fetchParams.controller.reportTimingSteps(); } }; queueMicrotask(() => processResponseEndOfBodyTask()); }; if (fetchParams.processResponse != null) { queueMicrotask(() => { fetchParams.processResponse(response); fetchParams.processResponse = null; }); } const internalResponse = response.type === "error" ? response : response.internalResponse ?? response; if (internalResponse.body == null) { processResponseEndOfBody(); } else { finished(internalResponse.body.stream, () => { processResponseEndOfBody(); }); } } async function httpFetch(fetchParams) { const request2 = fetchParams.request; let response = null; let actualResponse = null; const timingInfo = fetchParams.timingInfo; if (request2.serviceWorkers === "all") { } if (response === null) { if (request2.redirect === "follow") { request2.serviceWorkers = "none"; } actualResponse = response = await httpNetworkOrCacheFetch(fetchParams); if (request2.responseTainting === "cors" && corsCheck(request2, response) === "failure") { return makeNetworkError("cors failure"); } if (TAOCheck(request2, response) === "failure") { request2.timingAllowFailed = true; } } if ((request2.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck( request2.origin, request2.client, request2.destination, actualResponse ) === "blocked") { return makeNetworkError("blocked"); } if (redirectStatusSet.has(actualResponse.status)) { if (request2.redirect !== "manual") { fetchParams.controller.connection.destroy(void 0, false); } if (request2.redirect === "error") { response = makeNetworkError("unexpected redirect"); } else if (request2.redirect === "manual") { response = actualResponse; } else if (request2.redirect === "follow") { response = await httpRedirectFetch(fetchParams, response); } else { assert(false); } } response.timingInfo = timingInfo; return response; } function httpRedirectFetch(fetchParams, response) { const request2 = fetchParams.request; const actualResponse = response.internalResponse ? response.internalResponse : response; let locationURL; try { locationURL = responseLocationURL( actualResponse, requestCurrentURL(request2).hash ); if (locationURL == null) { return response; } } catch (err) { return Promise.resolve(makeNetworkError(err)); } if (!urlIsHttpHttpsScheme(locationURL)) { return Promise.resolve(makeNetworkError("URL scheme must be a HTTP(S) scheme")); } if (request2.redirectCount === 20) { return Promise.resolve(makeNetworkError("redirect count exceeded")); } request2.redirectCount += 1; if (request2.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request2, locationURL)) { return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"')); } if (request2.responseTainting === "cors" && (locationURL.username || locationURL.password)) { return Promise.resolve(makeNetworkError( 'URL cannot contain credentials for request mode "cors"' )); } if (actualResponse.status !== 303 && request2.body != null && request2.body.source == null) { return Promise.resolve(makeNetworkError()); } if ([301, 302].includes(actualResponse.status) && request2.method === "POST" || actualResponse.status === 303 && !GET_OR_HEAD.includes(request2.method)) { request2.method = "GET"; request2.body = null; for (const headerName of requestBodyHeader) { request2.headersList.delete(headerName); } } if (!sameOrigin(requestCurrentURL(request2), locationURL)) { request2.headersList.delete("authorization", true); request2.headersList.delete("proxy-authorization", true); request2.headersList.delete("cookie", true); request2.headersList.delete("host", true); } if (request2.body != null) { assert(request2.body.source != null); request2.body = safelyExtractBody(request2.body.source)[0]; } const timingInfo = fetchParams.timingInfo; timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); if (timingInfo.redirectStartTime === 0) { timingInfo.redirectStartTime = timingInfo.startTime; } request2.urlList.push(locationURL); setRequestReferrerPolicyOnRedirect(request2, actualResponse); return mainFetch(fetchParams, true); } async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) { const request2 = fetchParams.request; let httpFetchParams = null; let httpRequest = null; let response = null; const httpCache = null; const revalidatingFlag = false; if (request2.window === "no-window" && request2.redirect === "error") { httpFetchParams = fetchParams; httpRequest = request2; } else { httpRequest = cloneRequest(request2); httpFetchParams = { ...fetchParams }; httpFetchParams.request = httpRequest; } const includeCredentials = request2.credentials === "include" || request2.credentials === "same-origin" && request2.responseTainting === "basic"; const contentLength = httpRequest.body ? httpRequest.body.length : null; let contentLengthHeaderValue = null; if (httpRequest.body == null && ["POST", "PUT"].includes(httpRequest.method)) { contentLengthHeaderValue = "0"; } if (contentLength != null) { contentLengthHeaderValue = isomorphicEncode(`${contentLength}`); } if (contentLengthHeaderValue != null) { httpRequest.headersList.append("content-length", contentLengthHeaderValue, true); } if (contentLength != null && httpRequest.keepalive) { } if (httpRequest.referrer instanceof URL) { httpRequest.headersList.append("referer", isomorphicEncode(httpRequest.referrer.href), true); } appendRequestOriginHeader(httpRequest); appendFetchMetadata(httpRequest); if (!httpRequest.headersList.contains("user-agent", true)) { httpRequest.headersList.append("user-agent", defaultUserAgent); } if (httpRequest.cache === "default" && (httpRequest.headersList.contains("if-modified-since", true) || httpRequest.headersList.contains("if-none-match", true) || httpRequest.headersList.contains("if-unmodified-since", true) || httpRequest.headersList.contains("if-match", true) || httpRequest.headersList.contains("if-range", true))) { httpRequest.cache = "no-store"; } if (httpRequest.cache === "no-cache" && !httpRequest.preventNoCacheCacheControlHeaderModification && !httpRequest.headersList.contains("cache-control", true)) { httpRequest.headersList.append("cache-control", "max-age=0", true); } if (httpRequest.cache === "no-store" || httpRequest.cache === "reload") { if (!httpRequest.headersList.contains("pragma", true)) { httpRequest.headersList.append("pragma", "no-cache", true); } if (!httpRequest.headersList.contains("cache-control", true)) { httpRequest.headersList.append("cache-control", "no-cache", true); } } if (httpRequest.headersList.contains("range", true)) { httpRequest.headersList.append("accept-encoding", "identity", true); } if (!httpRequest.headersList.contains("accept-encoding", true)) { if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) { httpRequest.headersList.append("accept-encoding", "br, gzip, deflate", true); } else { httpRequest.headersList.append("accept-encoding", "gzip, deflate", true); } } httpRequest.headersList.delete("host", true); if (includeCredentials) { } if (httpCache == null) { httpRequest.cache = "no-store"; } if (httpRequest.cache !== "no-store" && httpRequest.cache !== "reload") { } if (response == null) { if (httpRequest.cache === "only-if-cached") { return makeNetworkError("only if cached"); } const forwardResponse = await httpNetworkFetch( httpFetchParams, includeCredentials, isNewConnectionFetch ); if (!safeMethodsSet.has(httpRequest.method) && forwardResponse.status >= 200 && forwardResponse.status <= 399) { } if (revalidatingFlag && forwardResponse.status === 304) { } if (response == null) { response = forwardResponse; } } response.urlList = [...httpRequest.urlList]; if (httpRequest.headersList.contains("range", true)) { response.rangeRequested = true; } response.requestIncludesCredentials = includeCredentials; if (response.status === 407) { if (request2.window === "no-window") { return makeNetworkError(); } if (isCancelled(fetchParams)) { return makeAppropriateNetworkError(fetchParams); } return makeNetworkError("proxy authentication required"); } if ( // response’s status is 421 response.status === 421 && // isNewConnectionFetch is false !isNewConnectionFetch && // request’s body is null, or request’s body is non-null and request’s body’s source is non-null (request2.body == null || request2.body.source != null) ) { if (isCancelled(fetchParams)) { return makeAppropriateNetworkError(fetchParams); } fetchParams.controller.connection.destroy(); response = await httpNetworkOrCacheFetch( fetchParams, isAuthenticationFetch, true ); } if (isAuthenticationFetch) { } return response; } async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) { assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed); fetchParams.controller.connection = { abort: null, destroyed: false, destroy(err, abort = true) { if (!this.destroyed) { this.destroyed = true; if (abort) { this.abort?.(err ?? new DOMException("The operation was aborted.", "AbortError")); } } } }; const request2 = fetchParams.request; let response = null; const timingInfo = fetchParams.timingInfo; const httpCache = null; if (httpCache == null) { request2.cache = "no-store"; } const newConnection = forceNewConnection ? "yes" : "no"; if (request2.mode === "websocket") { } else { } let requestBody = null; if (request2.body == null && fetchParams.processRequestEndOfBody) { queueMicrotask(() => fetchParams.processRequestEndOfBody()); } else if (request2.body != null) { const processBodyChunk = async function* (bytes) { if (isCancelled(fetchParams)) { return; } yield bytes; fetchParams.processRequestBodyChunkLength?.(bytes.byteLength); }; const processEndOfBody = () => { if (isCancelled(fetchParams)) { return; } if (fetchParams.processRequestEndOfBody) { fetchParams.processRequestEndOfBody(); } }; const processBodyError = (e) => { if (isCancelled(fetchParams)) { return; } if (e.name === "AbortError") { fetchParams.controller.abort(); } else { fetchParams.controller.terminate(e); } }; requestBody = (async function* () { try { for await (const bytes of request2.body.stream) { yield* processBodyChunk(bytes); } processEndOfBody(); } catch (err) { processBodyError(err); } })(); } try { const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody }); if (socket) { response = makeResponse({ status, statusText, headersList, socket }); } else { const iterator2 = body[Symbol.asyncIterator](); fetchParams.controller.next = () => iterator2.next(); response = makeResponse({ status, statusText, headersList }); } } catch (err) { if (err.name === "AbortError") { fetchParams.controller.connection.destroy(); return makeAppropriateNetworkError(fetchParams, err); } return makeNetworkError(err); } const pullAlgorithm = async () => { await fetchParams.controller.resume(); }; const cancelAlgorithm = (reason) => { if (!isCancelled(fetchParams)) { fetchParams.controller.abort(reason); } }; const stream2 = new ReadableStream( { async start(controller) { fetchParams.controller.controller = controller; }, async pull(controller) { await pullAlgorithm(controller); }, async cancel(reason) { await cancelAlgorithm(reason); }, type: "bytes" } ); response.body = { stream: stream2, source: null, length: null }; fetchParams.controller.onAborted = onAborted; fetchParams.controller.on("terminated", onAborted); fetchParams.controller.resume = async () => { while (true) { let bytes; let isFailure; try { const { done, value } = await fetchParams.controller.next(); if (isAborted(fetchParams)) { break; } bytes = done ? void 0 : value; } catch (err) { if (fetchParams.controller.ended && !timingInfo.encodedBodySize) { bytes = void 0; } else { bytes = err; isFailure = true; } } if (bytes === void 0) { readableStreamClose(fetchParams.controller.controller); finalizeResponse(fetchParams, response); return; } timingInfo.decodedBodySize += bytes?.byteLength ?? 0; if (isFailure) { fetchParams.controller.terminate(bytes); return; } const buffer = new Uint8Array(bytes); if (buffer.byteLength) { fetchParams.controller.controller.enqueue(buffer); } if (isErrored(stream2)) { fetchParams.controller.terminate(); return; } if (fetchParams.controller.controller.desiredSize <= 0) { return; } } }; function onAborted(reason) { if (isAborted(fetchParams)) { response.aborted = true; if (isReadable(stream2)) { fetchParams.controller.controller.error( fetchParams.controller.serializedAbortReason ); } } else { if (isReadable(stream2)) { fetchParams.controller.controller.error(new TypeError("terminated", { cause: isErrorLike(reason) ? reason : void 0 })); } } fetchParams.controller.connection.destroy(); } return response; function dispatch({ body }) { const url = requestCurrentURL(request2); const agent = fetchParams.controller.dispatcher; return new Promise((resolve, reject) => agent.dispatch( { path: url.pathname + url.search, origin: url.origin, method: request2.method, body: agent.isMockActive ? request2.body && (request2.body.source || request2.body.stream) : body, headers: request2.headersList.entries, maxRedirections: 0, upgrade: request2.mode === "websocket" ? "websocket" : void 0 }, { body: null, abort: null, onConnect(abort) { const { connection } = fetchParams.controller; timingInfo.finalConnectionTimingInfo = clampAndCoarsenConnectionTimingInfo(void 0, timingInfo.postRedirectStartTime, fetchParams.crossOriginIsolatedCapability); if (connection.destroyed) { abort(new DOMException("The operation was aborted.", "AbortError")); } else { fetchParams.controller.on("terminated", abort); this.abort = connection.abort = abort; } timingInfo.finalNetworkRequestStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); }, onResponseStarted() { timingInfo.finalNetworkResponseStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); }, onHeaders(status, rawHeaders, resume, statusText) { if (status < 200) { return; } let location = ""; const headersList = new HeadersList(); for (let i = 0; i < rawHeaders.length; i += 2) { headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i]), rawHeaders[i + 1].toString("latin1"), true); } location = headersList.get("location", true); this.body = new Readable({ read: resume }); const decoders = []; const willFollow = location && request2.redirect === "follow" && redirectStatusSet.has(status); if (request2.method !== "HEAD" && request2.method !== "CONNECT" && !nullBodyStatus.includes(status) && !willFollow) { const contentEncoding = headersList.get("content-encoding", true); const codings = contentEncoding ? contentEncoding.toLowerCase().split(",") : []; const maxContentEncodings = 5; if (codings.length > maxContentEncodings) { reject(new Error(`too many content-encodings in response: ${codings.length}, maximum allowed is ${maxContentEncodings}`)); return true; } for (let i = codings.length - 1; i >= 0; --i) { const coding = codings[i].trim(); if (coding === "x-gzip" || coding === "gzip") { decoders.push(zlib.createGunzip({ // Be less strict when decoding compressed responses, since sometimes // servers send slightly invalid responses that are still accepted // by common browsers. // Always using Z_SYNC_FLUSH is what cURL does. flush: zlib.constants.Z_SYNC_FLUSH, finishFlush: zlib.constants.Z_SYNC_FLUSH })); } else if (coding === "deflate") { decoders.push(createInflate({ flush: zlib.constants.Z_SYNC_FLUSH, finishFlush: zlib.constants.Z_SYNC_FLUSH })); } else if (coding === "br") { decoders.push(zlib.createBrotliDecompress({ flush: zlib.constants.BROTLI_OPERATION_FLUSH, finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH })); } else { decoders.length = 0; break; } } } const onError = this.onError.bind(this); resolve({ status, statusText, headersList, body: decoders.length ? pipeline2(this.body, ...decoders, (err) => { if (err) { this.onError(err); } }).on("error", onError) : this.body.on("error", onError) }); return true; }, onData(chunk) { if (fetchParams.controller.dump) { return; } const bytes = chunk; timingInfo.encodedBodySize += bytes.byteLength; return this.body.push(bytes); }, onComplete() { if (this.abort) { fetchParams.controller.off("terminated", this.abort); } if (fetchParams.controller.onAborted) { fetchParams.controller.off("terminated", fetchParams.controller.onAborted); } fetchParams.controller.ended = true; this.body.push(null); }, onError(error) { if (this.abort) { fetchParams.controller.off("terminated", this.abort); } this.body?.destroy(error); fetchParams.controller.terminate(error); reject(error); }, onUpgrade(status, rawHeaders, socket) { if (status !== 101) { return; } const headersList = new HeadersList(); for (let i = 0; i < rawHeaders.length; i += 2) { headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i]), rawHeaders[i + 1].toString("latin1"), true); } resolve({ status, statusText: STATUS_CODES[status], headersList, socket }); return true; } } )); } } module2.exports = { fetch, Fetch, fetching, finalizeAndReportTiming }; } }); // node_modules/undici/lib/web/fileapi/symbols.js var require_symbols3 = __commonJS({ "node_modules/undici/lib/web/fileapi/symbols.js"(exports2, module2) { "use strict"; module2.exports = { kState: /* @__PURE__ */ Symbol("FileReader state"), kResult: /* @__PURE__ */ Symbol("FileReader result"), kError: /* @__PURE__ */ Symbol("FileReader error"), kLastProgressEventFired: /* @__PURE__ */ Symbol("FileReader last progress event fired timestamp"), kEvents: /* @__PURE__ */ Symbol("FileReader events"), kAborted: /* @__PURE__ */ Symbol("FileReader aborted") }; } }); // node_modules/undici/lib/web/fileapi/progressevent.js var require_progressevent = __commonJS({ "node_modules/undici/lib/web/fileapi/progressevent.js"(exports2, module2) { "use strict"; var { webidl } = require_webidl(); var kState = /* @__PURE__ */ Symbol("ProgressEvent state"); var ProgressEvent = class _ProgressEvent extends Event { constructor(type, eventInitDict = {}) { type = webidl.converters.DOMString(type, "ProgressEvent constructor", "type"); eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}); super(type, eventInitDict); this[kState] = { lengthComputable: eventInitDict.lengthComputable, loaded: eventInitDict.loaded, total: eventInitDict.total }; } get lengthComputable() { webidl.brandCheck(this, _ProgressEvent); return this[kState].lengthComputable; } get loaded() { webidl.brandCheck(this, _ProgressEvent); return this[kState].loaded; } get total() { webidl.brandCheck(this, _ProgressEvent); return this[kState].total; } }; webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ { key: "lengthComputable", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "loaded", converter: webidl.converters["unsigned long long"], defaultValue: () => 0 }, { key: "total", converter: webidl.converters["unsigned long long"], defaultValue: () => 0 }, { key: "bubbles", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "cancelable", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "composed", converter: webidl.converters.boolean, defaultValue: () => false } ]); module2.exports = { ProgressEvent }; } }); // node_modules/undici/lib/web/fileapi/encoding.js var require_encoding = __commonJS({ "node_modules/undici/lib/web/fileapi/encoding.js"(exports2, module2) { "use strict"; function getEncoding(label) { if (!label) { return "failure"; } switch (label.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"; } } module2.exports = { getEncoding }; } }); // node_modules/undici/lib/web/fileapi/util.js var require_util4 = __commonJS({ "node_modules/undici/lib/web/fileapi/util.js"(exports2, module2) { "use strict"; var { kState, kError, kResult, kAborted, kLastProgressEventFired } = require_symbols3(); var { ProgressEvent } = require_progressevent(); var { getEncoding } = require_encoding(); var { serializeAMimeType, parseMIMEType } = require_data_url(); var { types } = require("node:util"); var { StringDecoder } = require("string_decoder"); var { btoa } = require("node:buffer"); var staticPropertyDescriptors = { enumerable: true, writable: false, configurable: false }; function readOperation(fr, blob, type, encodingName) { if (fr[kState] === "loading") { throw new DOMException("Invalid state", "InvalidStateError"); } fr[kState] = "loading"; fr[kResult] = null; fr[kError] = null; const stream2 = blob.stream(); const reader = stream2.getReader(); const bytes = []; let chunkPromise = reader.read(); let isFirstChunk = true; (async () => { while (!fr[kAborted]) { try { const { done, value } = await chunkPromise; if (isFirstChunk && !fr[kAborted]) { queueMicrotask(() => { fireAProgressEvent("loadstart", fr); }); } isFirstChunk = false; if (!done && types.isUint8Array(value)) { bytes.push(value); if ((fr[kLastProgressEventFired] === void 0 || Date.now() - fr[kLastProgressEventFired] >= 50) && !fr[kAborted]) { fr[kLastProgressEventFired] = Date.now(); queueMicrotask(() => { fireAProgressEvent("progress", fr); }); } chunkPromise = reader.read(); } else if (done) { queueMicrotask(() => { fr[kState] = "done"; try { const result = packageData(bytes, type, blob.type, encodingName); if (fr[kAborted]) { return; } fr[kResult] = result; fireAProgressEvent("load", fr); } catch (error) { fr[kError] = error; fireAProgressEvent("error", fr); } if (fr[kState] !== "loading") { fireAProgressEvent("loadend", fr); } }); break; } } catch (error) { if (fr[kAborted]) { return; } queueMicrotask(() => { fr[kState] = "done"; fr[kError] = error; fireAProgressEvent("error", fr); if (fr[kState] !== "loading") { fireAProgressEvent("loadend", fr); } }); break; } } })(); } function fireAProgressEvent(e, reader) { const event = new ProgressEvent(e, { bubbles: false, cancelable: false }); reader.dispatchEvent(event); } function packageData(bytes, type, mimeType, encodingName) { switch (type) { case "DataURL": { let dataURL = "data:"; const parsed = parseMIMEType(mimeType || "application/octet-stream"); if (parsed !== "failure") { dataURL += serializeAMimeType(parsed); } dataURL += ";base64,"; const decoder = new StringDecoder("latin1"); for (const chunk of bytes) { dataURL += btoa(decoder.write(chunk)); } dataURL += btoa(decoder.end()); return dataURL; } case "Text": { let encoding = "failure"; if (encodingName) { encoding = getEncoding(encodingName); } if (encoding === "failure" && mimeType) { const type2 = parseMIMEType(mimeType); if (type2 !== "failure") { encoding = getEncoding(type2.parameters.get("charset")); } } if (encoding === "failure") { encoding = "UTF-8"; } return decode(bytes, encoding); } case "ArrayBuffer": { const sequence = combineByteSequences(bytes); return sequence.buffer; } case "BinaryString": { let binaryString = ""; const decoder = new StringDecoder("latin1"); for (const chunk of bytes) { binaryString += decoder.write(chunk); } binaryString += decoder.end(); return binaryString; } } } function decode(ioQueue, encoding) { const bytes = combineByteSequences(ioQueue); const BOMEncoding = BOMSniffing(bytes); let slice = 0; if (BOMEncoding !== null) { encoding = BOMEncoding; slice = BOMEncoding === "UTF-8" ? 3 : 2; } const sliced = bytes.slice(slice); return new TextDecoder(encoding).decode(sliced); } function BOMSniffing(ioQueue) { const [a, b, c] = ioQueue; if (a === 239 && b === 187 && c === 191) { return "UTF-8"; } else if (a === 254 && b === 255) { return "UTF-16BE"; } else if (a === 255 && b === 254) { return "UTF-16LE"; } return null; } function combineByteSequences(sequences) { const size = sequences.reduce((a, b) => { return a + b.byteLength; }, 0); let offset = 0; return sequences.reduce((a, b) => { a.set(b, offset); offset += b.byteLength; return a; }, new Uint8Array(size)); } module2.exports = { staticPropertyDescriptors, readOperation, fireAProgressEvent }; } }); // node_modules/undici/lib/web/fileapi/filereader.js var require_filereader = __commonJS({ "node_modules/undici/lib/web/fileapi/filereader.js"(exports2, module2) { "use strict"; var { staticPropertyDescriptors, readOperation, fireAProgressEvent } = require_util4(); var { kState, kError, kResult, kEvents, kAborted } = require_symbols3(); var { webidl } = require_webidl(); var { kEnumerableProperty } = require_util(); var FileReader = class _FileReader extends EventTarget { constructor() { super(); this[kState] = "empty"; this[kResult] = null; this[kError] = null; this[kEvents] = { loadend: null, error: null, abort: null, load: null, progress: null, loadstart: null }; } /** * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer * @param {import('buffer').Blob} blob */ readAsArrayBuffer(blob) { webidl.brandCheck(this, _FileReader); webidl.argumentLengthCheck(arguments, 1, "FileReader.readAsArrayBuffer"); blob = webidl.converters.Blob(blob, { strict: false }); readOperation(this, blob, "ArrayBuffer"); } /** * @see https://w3c.github.io/FileAPI/#readAsBinaryString * @param {import('buffer').Blob} blob */ readAsBinaryString(blob) { webidl.brandCheck(this, _FileReader); webidl.argumentLengthCheck(arguments, 1, "FileReader.readAsBinaryString"); blob = webidl.converters.Blob(blob, { strict: false }); readOperation(this, blob, "BinaryString"); } /** * @see https://w3c.github.io/FileAPI/#readAsDataText * @param {import('buffer').Blob} blob * @param {string?} encoding */ readAsText(blob, encoding = void 0) { webidl.brandCheck(this, _FileReader); webidl.argumentLengthCheck(arguments, 1, "FileReader.readAsText"); blob = webidl.converters.Blob(blob, { strict: false }); if (encoding !== void 0) { encoding = webidl.converters.DOMString(encoding, "FileReader.readAsText", "encoding"); } readOperation(this, blob, "Text", encoding); } /** * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL * @param {import('buffer').Blob} blob */ readAsDataURL(blob) { webidl.brandCheck(this, _FileReader); webidl.argumentLengthCheck(arguments, 1, "FileReader.readAsDataURL"); blob = webidl.converters.Blob(blob, { strict: false }); readOperation(this, blob, "DataURL"); } /** * @see https://w3c.github.io/FileAPI/#dfn-abort */ abort() { if (this[kState] === "empty" || this[kState] === "done") { this[kResult] = null; return; } if (this[kState] === "loading") { this[kState] = "done"; this[kResult] = null; } this[kAborted] = true; fireAProgressEvent("abort", this); if (this[kState] !== "loading") { fireAProgressEvent("loadend", this); } } /** * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate */ get readyState() { webidl.brandCheck(this, _FileReader); switch (this[kState]) { case "empty": return this.EMPTY; case "loading": return this.LOADING; case "done": return this.DONE; } } /** * @see https://w3c.github.io/FileAPI/#dom-filereader-result */ get result() { webidl.brandCheck(this, _FileReader); return this[kResult]; } /** * @see https://w3c.github.io/FileAPI/#dom-filereader-error */ get error() { webidl.brandCheck(this, _FileReader); return this[kError]; } get onloadend() { webidl.brandCheck(this, _FileReader); return this[kEvents].loadend; } set onloadend(fn) { webidl.brandCheck(this, _FileReader); if (this[kEvents].loadend) { this.removeEventListener("loadend", this[kEvents].loadend); } if (typeof fn === "function") { this[kEvents].loadend = fn; this.addEventListener("loadend", fn); } else { this[kEvents].loadend = null; } } get onerror() { webidl.brandCheck(this, _FileReader); return this[kEvents].error; } set onerror(fn) { webidl.brandCheck(this, _FileReader); if (this[kEvents].error) { this.removeEventListener("error", this[kEvents].error); } if (typeof fn === "function") { this[kEvents].error = fn; this.addEventListener("error", fn); } else { this[kEvents].error = null; } } get onloadstart() { webidl.brandCheck(this, _FileReader); return this[kEvents].loadstart; } set onloadstart(fn) { webidl.brandCheck(this, _FileReader); if (this[kEvents].loadstart) { this.removeEventListener("loadstart", this[kEvents].loadstart); } if (typeof fn === "function") { this[kEvents].loadstart = fn; this.addEventListener("loadstart", fn); } else { this[kEvents].loadstart = null; } } get onprogress() { webidl.brandCheck(this, _FileReader); return this[kEvents].progress; } set onprogress(fn) { webidl.brandCheck(this, _FileReader); if (this[kEvents].progress) { this.removeEventListener("progress", this[kEvents].progress); } if (typeof fn === "function") { this[kEvents].progress = fn; this.addEventListener("progress", fn); } else { this[kEvents].progress = null; } } get onload() { webidl.brandCheck(this, _FileReader); return this[kEvents].load; } set onload(fn) { webidl.brandCheck(this, _FileReader); if (this[kEvents].load) { this.removeEventListener("load", this[kEvents].load); } if (typeof fn === "function") { this[kEvents].load = fn; this.addEventListener("load", fn); } else { this[kEvents].load = null; } } get onabort() { webidl.brandCheck(this, _FileReader); return this[kEvents].abort; } set onabort(fn) { webidl.brandCheck(this, _FileReader); if (this[kEvents].abort) { this.removeEventListener("abort", this[kEvents].abort); } if (typeof fn === "function") { this[kEvents].abort = fn; this.addEventListener("abort", fn); } else { this[kEvents].abort = null; } } }; FileReader.EMPTY = FileReader.prototype.EMPTY = 0; FileReader.LOADING = FileReader.prototype.LOADING = 1; FileReader.DONE = FileReader.prototype.DONE = 2; Object.defineProperties(FileReader.prototype, { EMPTY: staticPropertyDescriptors, LOADING: staticPropertyDescriptors, DONE: staticPropertyDescriptors, readAsArrayBuffer: kEnumerableProperty, readAsBinaryString: kEnumerableProperty, readAsText: kEnumerableProperty, readAsDataURL: kEnumerableProperty, abort: kEnumerableProperty, readyState: kEnumerableProperty, result: kEnumerableProperty, error: kEnumerableProperty, onloadstart: kEnumerableProperty, onprogress: kEnumerableProperty, onload: kEnumerableProperty, onabort: kEnumerableProperty, onerror: kEnumerableProperty, onloadend: kEnumerableProperty, [Symbol.toStringTag]: { value: "FileReader", writable: false, enumerable: false, configurable: true } }); Object.defineProperties(FileReader, { EMPTY: staticPropertyDescriptors, LOADING: staticPropertyDescriptors, DONE: staticPropertyDescriptors }); module2.exports = { FileReader }; } }); // node_modules/undici/lib/web/cache/symbols.js var require_symbols4 = __commonJS({ "node_modules/undici/lib/web/cache/symbols.js"(exports2, module2) { "use strict"; module2.exports = { kConstruct: require_symbols().kConstruct }; } }); // node_modules/undici/lib/web/cache/util.js var require_util5 = __commonJS({ "node_modules/undici/lib/web/cache/util.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { URLSerializer } = require_data_url(); var { isValidHeaderName } = require_util2(); function urlEquals(A, B, excludeFragment = false) { const serializedA = URLSerializer(A, excludeFragment); const serializedB = URLSerializer(B, excludeFragment); return serializedA === serializedB; } function getFieldValues(header) { assert(header !== null); const values = []; for (let value of header.split(",")) { value = value.trim(); if (isValidHeaderName(value)) { values.push(value); } } return values; } module2.exports = { urlEquals, getFieldValues }; } }); // node_modules/undici/lib/web/cache/cache.js var require_cache = __commonJS({ "node_modules/undici/lib/web/cache/cache.js"(exports2, module2) { "use strict"; var { kConstruct } = require_symbols4(); var { urlEquals, getFieldValues } = require_util5(); var { kEnumerableProperty, isDisturbed } = require_util(); var { webidl } = require_webidl(); var { Response, cloneResponse, fromInnerResponse } = require_response(); var { Request, fromInnerRequest } = require_request2(); var { kState } = require_symbols2(); var { fetching } = require_fetch(); var { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require_util2(); var assert = require("node:assert"); var Cache = class _Cache { /** * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list * @type {requestResponseList} */ #relevantRequestResponseList; constructor() { if (arguments[0] !== kConstruct) { webidl.illegalConstructor(); } webidl.util.markAsUncloneable(this); this.#relevantRequestResponseList = arguments[1]; } async match(request2, options = {}) { webidl.brandCheck(this, _Cache); const prefix = "Cache.match"; webidl.argumentLengthCheck(arguments, 1, prefix); request2 = webidl.converters.RequestInfo(request2, prefix, "request"); options = webidl.converters.CacheQueryOptions(options, prefix, "options"); const p = this.#internalMatchAll(request2, options, 1); if (p.length === 0) { return; } return p[0]; } async matchAll(request2 = void 0, options = {}) { webidl.brandCheck(this, _Cache); const prefix = "Cache.matchAll"; if (request2 !== void 0) request2 = webidl.converters.RequestInfo(request2, prefix, "request"); options = webidl.converters.CacheQueryOptions(options, prefix, "options"); return this.#internalMatchAll(request2, options); } async add(request2) { webidl.brandCheck(this, _Cache); const prefix = "Cache.add"; webidl.argumentLengthCheck(arguments, 1, prefix); request2 = webidl.converters.RequestInfo(request2, prefix, "request"); const requests = [request2]; const responseArrayPromise = this.addAll(requests); return await responseArrayPromise; } async addAll(requests) { webidl.brandCheck(this, _Cache); const prefix = "Cache.addAll"; webidl.argumentLengthCheck(arguments, 1, prefix); const responsePromises = []; const requestList = []; for (let request2 of requests) { if (request2 === void 0) { throw webidl.errors.conversionFailed({ prefix, argument: "Argument 1", types: ["undefined is not allowed"] }); } request2 = webidl.converters.RequestInfo(request2); if (typeof request2 === "string") { continue; } const r = request2[kState]; if (!urlIsHttpHttpsScheme(r.url) || r.method !== "GET") { throw webidl.errors.exception({ header: prefix, message: "Expected http/s scheme when method is not GET." }); } } const fetchControllers = []; for (const request2 of requests) { const r = new Request(request2)[kState]; if (!urlIsHttpHttpsScheme(r.url)) { throw webidl.errors.exception({ header: prefix, message: "Expected http/s scheme." }); } r.initiator = "fetch"; r.destination = "subresource"; requestList.push(r); const responsePromise = createDeferredPromise(); fetchControllers.push(fetching({ request: r, processResponse(response) { if (response.type === "error" || response.status === 206 || response.status < 200 || response.status > 299) { responsePromise.reject(webidl.errors.exception({ header: "Cache.addAll", message: "Received an invalid status code or the request failed." })); } else if (response.headersList.contains("vary")) { const fieldValues = getFieldValues(response.headersList.get("vary")); for (const fieldValue of fieldValues) { if (fieldValue === "*") { responsePromise.reject(webidl.errors.exception({ header: "Cache.addAll", message: "invalid vary field value" })); for (const controller of fetchControllers) { controller.abort(); } return; } } } }, processResponseEndOfBody(response) { if (response.aborted) { responsePromise.reject(new DOMException("aborted", "AbortError")); return; } responsePromise.resolve(response); } })); responsePromises.push(responsePromise.promise); } const p = Promise.all(responsePromises); const responses = await p; const operations = []; let index = 0; for (const response of responses) { const operation = { type: "put", // 7.3.2 request: requestList[index], // 7.3.3 response // 7.3.4 }; operations.push(operation); index++; } const cacheJobPromise = createDeferredPromise(); let errorData = null; try { this.#batchCacheOperations(operations); } catch (e) { errorData = e; } queueMicrotask(() => { if (errorData === null) { cacheJobPromise.resolve(void 0); } else { cacheJobPromise.reject(errorData); } }); return cacheJobPromise.promise; } async put(request2, response) { webidl.brandCheck(this, _Cache); const prefix = "Cache.put"; webidl.argumentLengthCheck(arguments, 2, prefix); request2 = webidl.converters.RequestInfo(request2, prefix, "request"); response = webidl.converters.Response(response, prefix, "response"); let innerRequest = null; if (request2 instanceof Request) { innerRequest = request2[kState]; } else { innerRequest = new Request(request2)[kState]; } if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== "GET") { throw webidl.errors.exception({ header: prefix, message: "Expected an http/s scheme when method is not GET" }); } const innerResponse = response[kState]; if (innerResponse.status === 206) { throw webidl.errors.exception({ header: prefix, message: "Got 206 status" }); } if (innerResponse.headersList.contains("vary")) { const fieldValues = getFieldValues(innerResponse.headersList.get("vary")); for (const fieldValue of fieldValues) { if (fieldValue === "*") { throw webidl.errors.exception({ header: prefix, message: "Got * vary field value" }); } } } if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) { throw webidl.errors.exception({ header: prefix, message: "Response body is locked or disturbed" }); } const clonedResponse = cloneResponse(innerResponse); const bodyReadPromise = createDeferredPromise(); if (innerResponse.body != null) { const stream2 = innerResponse.body.stream; const reader = stream2.getReader(); readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject); } else { bodyReadPromise.resolve(void 0); } const operations = []; const operation = { type: "put", // 14. request: innerRequest, // 15. response: clonedResponse // 16. }; operations.push(operation); const bytes = await bodyReadPromise.promise; if (clonedResponse.body != null) { clonedResponse.body.source = bytes; } const cacheJobPromise = createDeferredPromise(); let errorData = null; try { this.#batchCacheOperations(operations); } catch (e) { errorData = e; } queueMicrotask(() => { if (errorData === null) { cacheJobPromise.resolve(); } else { cacheJobPromise.reject(errorData); } }); return cacheJobPromise.promise; } async delete(request2, options = {}) { webidl.brandCheck(this, _Cache); const prefix = "Cache.delete"; webidl.argumentLengthCheck(arguments, 1, prefix); request2 = webidl.converters.RequestInfo(request2, prefix, "request"); options = webidl.converters.CacheQueryOptions(options, prefix, "options"); let r = null; if (request2 instanceof Request) { r = request2[kState]; if (r.method !== "GET" && !options.ignoreMethod) { return false; } } else { assert(typeof request2 === "string"); r = new Request(request2)[kState]; } const operations = []; const operation = { type: "delete", request: r, options }; operations.push(operation); const cacheJobPromise = createDeferredPromise(); let errorData = null; let requestResponses; try { requestResponses = this.#batchCacheOperations(operations); } catch (e) { errorData = e; } queueMicrotask(() => { if (errorData === null) { cacheJobPromise.resolve(!!requestResponses?.length); } else { cacheJobPromise.reject(errorData); } }); return cacheJobPromise.promise; } /** * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys * @param {any} request * @param {import('../../types/cache').CacheQueryOptions} options * @returns {Promise} */ async keys(request2 = void 0, options = {}) { webidl.brandCheck(this, _Cache); const prefix = "Cache.keys"; if (request2 !== void 0) request2 = webidl.converters.RequestInfo(request2, prefix, "request"); options = webidl.converters.CacheQueryOptions(options, prefix, "options"); let r = null; if (request2 !== void 0) { if (request2 instanceof Request) { r = request2[kState]; if (r.method !== "GET" && !options.ignoreMethod) { return []; } } else if (typeof request2 === "string") { r = new Request(request2)[kState]; } } const promise = createDeferredPromise(); const requests = []; if (request2 === void 0) { for (const requestResponse of this.#relevantRequestResponseList) { requests.push(requestResponse[0]); } } else { const requestResponses = this.#queryCache(r, options); for (const requestResponse of requestResponses) { requests.push(requestResponse[0]); } } queueMicrotask(() => { const requestList = []; for (const request3 of requests) { const requestObject = fromInnerRequest( request3, new AbortController().signal, "immutable" ); requestList.push(requestObject); } promise.resolve(Object.freeze(requestList)); }); return promise.promise; } /** * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm * @param {CacheBatchOperation[]} operations * @returns {requestResponseList} */ #batchCacheOperations(operations) { const cache = this.#relevantRequestResponseList; const backupCache = [...cache]; const addedItems = []; const resultList = []; try { for (const operation of operations) { if (operation.type !== "delete" && operation.type !== "put") { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: 'operation type does not match "delete" or "put"' }); } if (operation.type === "delete" && operation.response != null) { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: "delete operation should not have an associated response" }); } if (this.#queryCache(operation.request, operation.options, addedItems).length) { throw new DOMException("???", "InvalidStateError"); } let requestResponses; if (operation.type === "delete") { requestResponses = this.#queryCache(operation.request, operation.options); if (requestResponses.length === 0) { return []; } for (const requestResponse of requestResponses) { const idx = cache.indexOf(requestResponse); assert(idx !== -1); cache.splice(idx, 1); } } else if (operation.type === "put") { if (operation.response == null) { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: "put operation should have an associated response" }); } const r = operation.request; if (!urlIsHttpHttpsScheme(r.url)) { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: "expected http or https scheme" }); } if (r.method !== "GET") { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: "not get method" }); } if (operation.options != null) { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: "options must not be defined" }); } requestResponses = this.#queryCache(operation.request); for (const requestResponse of requestResponses) { const idx = cache.indexOf(requestResponse); assert(idx !== -1); cache.splice(idx, 1); } cache.push([operation.request, operation.response]); addedItems.push([operation.request, operation.response]); } resultList.push([operation.request, operation.response]); } return resultList; } catch (e) { this.#relevantRequestResponseList.length = 0; this.#relevantRequestResponseList = backupCache; throw e; } } /** * @see https://w3c.github.io/ServiceWorker/#query-cache * @param {any} requestQuery * @param {import('../../types/cache').CacheQueryOptions} options * @param {requestResponseList} targetStorage * @returns {requestResponseList} */ #queryCache(requestQuery, options, targetStorage) { const resultList = []; const storage = targetStorage ?? this.#relevantRequestResponseList; for (const requestResponse of storage) { const [cachedRequest, cachedResponse] = requestResponse; if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) { resultList.push(requestResponse); } } return resultList; } /** * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm * @param {any} requestQuery * @param {any} request * @param {any | null} response * @param {import('../../types/cache').CacheQueryOptions | undefined} options * @returns {boolean} */ #requestMatchesCachedItem(requestQuery, request2, response = null, options) { const queryURL = new URL(requestQuery.url); const cachedURL = new URL(request2.url); if (options?.ignoreSearch) { cachedURL.search = ""; queryURL.search = ""; } if (!urlEquals(queryURL, cachedURL, true)) { return false; } if (response == null || options?.ignoreVary || !response.headersList.contains("vary")) { return true; } const fieldValues = getFieldValues(response.headersList.get("vary")); for (const fieldValue of fieldValues) { if (fieldValue === "*") { return false; } const requestValue = request2.headersList.get(fieldValue); const queryValue = requestQuery.headersList.get(fieldValue); if (requestValue !== queryValue) { return false; } } return true; } #internalMatchAll(request2, options, maxResponses = Infinity) { let r = null; if (request2 !== void 0) { if (request2 instanceof Request) { r = request2[kState]; if (r.method !== "GET" && !options.ignoreMethod) { return []; } } else if (typeof request2 === "string") { r = new Request(request2)[kState]; } } const responses = []; if (request2 === void 0) { for (const requestResponse of this.#relevantRequestResponseList) { responses.push(requestResponse[1]); } } else { const requestResponses = this.#queryCache(r, options); for (const requestResponse of requestResponses) { responses.push(requestResponse[1]); } } const responseList = []; for (const response of responses) { const responseObject = fromInnerResponse(response, "immutable"); responseList.push(responseObject.clone()); if (responseList.length >= maxResponses) { break; } } return Object.freeze(responseList); } }; Object.defineProperties(Cache.prototype, { [Symbol.toStringTag]: { value: "Cache", configurable: true }, match: kEnumerableProperty, matchAll: kEnumerableProperty, add: kEnumerableProperty, addAll: kEnumerableProperty, put: kEnumerableProperty, delete: kEnumerableProperty, keys: kEnumerableProperty }); var cacheQueryOptionConverters = [ { key: "ignoreSearch", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "ignoreMethod", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "ignoreVary", converter: webidl.converters.boolean, defaultValue: () => false } ]; webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters); webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ ...cacheQueryOptionConverters, { key: "cacheName", converter: webidl.converters.DOMString } ]); webidl.converters.Response = webidl.interfaceConverter(Response); webidl.converters["sequence"] = webidl.sequenceConverter( webidl.converters.RequestInfo ); module2.exports = { Cache }; } }); // node_modules/undici/lib/web/cache/cachestorage.js var require_cachestorage = __commonJS({ "node_modules/undici/lib/web/cache/cachestorage.js"(exports2, module2) { "use strict"; var { kConstruct } = require_symbols4(); var { Cache } = require_cache(); var { webidl } = require_webidl(); var { kEnumerableProperty } = require_util(); var CacheStorage = class _CacheStorage { /** * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map * @type {Map} */ async has(cacheName) { webidl.brandCheck(this, _CacheStorage); const prefix = "CacheStorage.has"; webidl.argumentLengthCheck(arguments, 1, prefix); cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"); return this.#caches.has(cacheName); } /** * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open * @param {string} cacheName * @returns {Promise} */ async open(cacheName) { webidl.brandCheck(this, _CacheStorage); const prefix = "CacheStorage.open"; webidl.argumentLengthCheck(arguments, 1, prefix); cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"); if (this.#caches.has(cacheName)) { const cache2 = this.#caches.get(cacheName); return new Cache(kConstruct, cache2); } const cache = []; this.#caches.set(cacheName, cache); return new Cache(kConstruct, cache); } /** * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete * @param {string} cacheName * @returns {Promise} */ async delete(cacheName) { webidl.brandCheck(this, _CacheStorage); const prefix = "CacheStorage.delete"; webidl.argumentLengthCheck(arguments, 1, prefix); cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"); return this.#caches.delete(cacheName); } /** * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys * @returns {Promise} */ async keys() { webidl.brandCheck(this, _CacheStorage); const keys = this.#caches.keys(); return [...keys]; } }; Object.defineProperties(CacheStorage.prototype, { [Symbol.toStringTag]: { value: "CacheStorage", configurable: true }, match: kEnumerableProperty, has: kEnumerableProperty, open: kEnumerableProperty, delete: kEnumerableProperty, keys: kEnumerableProperty }); module2.exports = { CacheStorage }; } }); // node_modules/undici/lib/web/cookies/constants.js var require_constants4 = __commonJS({ "node_modules/undici/lib/web/cookies/constants.js"(exports2, module2) { "use strict"; var maxAttributeValueSize = 1024; var maxNameValuePairSize = 4096; module2.exports = { maxAttributeValueSize, maxNameValuePairSize }; } }); // node_modules/undici/lib/web/cookies/util.js var require_util6 = __commonJS({ "node_modules/undici/lib/web/cookies/util.js"(exports2, module2) { "use strict"; function isCTLExcludingHtab(value) { for (let i = 0; i < value.length; ++i) { const code = value.charCodeAt(i); if (code >= 0 && code <= 8 || code >= 10 && code <= 31 || code === 127) { return true; } } return false; } function validateCookieName(name) { for (let i = 0; i < name.length; ++i) { const code = name.charCodeAt(i); if (code < 33 || // exclude CTLs (0-31), SP and HT code > 126 || // exclude non-ascii and DEL code === 34 || // " code === 40 || // ( code === 41 || // ) code === 60 || // < code === 62 || // > code === 64 || // @ code === 44 || // , code === 59 || // ; code === 58 || // : code === 92 || // \ code === 47 || // / code === 91 || // [ code === 93 || // ] code === 63 || // ? code === 61 || // = code === 123 || // { code === 125) { throw new Error("Invalid cookie name"); } } } function validateCookieValue(value) { let len = value.length; let i = 0; if (value[0] === '"') { if (len === 1 || value[len - 1] !== '"') { throw new Error("Invalid cookie value"); } --len; ++i; } while (i < len) { const code = value.charCodeAt(i++); if (code < 33 || // exclude CTLs (0-31) code > 126 || // non-ascii and DEL (127) code === 34 || // " code === 44 || // , code === 59 || // ; code === 92) { throw new Error("Invalid cookie value"); } } } function validateCookiePath(path2) { for (let i = 0; i < path2.length; ++i) { const code = path2.charCodeAt(i); if (code < 32 || // exclude CTLs (0-31) code === 127 || // DEL code === 59) { throw new Error("Invalid cookie path"); } } } function validateCookieDomain(domain) { if (domain.startsWith("-") || domain.endsWith(".") || domain.endsWith("-")) { throw new Error("Invalid cookie domain"); } } var IMFDays = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ]; var IMFMonths = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; var IMFPaddedNumbers = Array(61).fill(0).map((_, i) => i.toString().padStart(2, "0")); function toIMFDate(date) { if (typeof date === "number") { date = new Date(date); } return `${IMFDays[date.getUTCDay()]}, ${IMFPaddedNumbers[date.getUTCDate()]} ${IMFMonths[date.getUTCMonth()]} ${date.getUTCFullYear()} ${IMFPaddedNumbers[date.getUTCHours()]}:${IMFPaddedNumbers[date.getUTCMinutes()]}:${IMFPaddedNumbers[date.getUTCSeconds()]} GMT`; } function validateCookieMaxAge(maxAge) { if (maxAge < 0) { throw new Error("Invalid cookie max-age"); } } function stringify(cookie) { if (cookie.name.length === 0) { return null; } validateCookieName(cookie.name); validateCookieValue(cookie.value); const out = [`${cookie.name}=${cookie.value}`]; if (cookie.name.startsWith("__Secure-")) { cookie.secure = true; } if (cookie.name.startsWith("__Host-")) { cookie.secure = true; cookie.domain = null; cookie.path = "/"; } if (cookie.secure) { out.push("Secure"); } if (cookie.httpOnly) { out.push("HttpOnly"); } if (typeof cookie.maxAge === "number") { validateCookieMaxAge(cookie.maxAge); out.push(`Max-Age=${cookie.maxAge}`); } if (cookie.domain) { validateCookieDomain(cookie.domain); out.push(`Domain=${cookie.domain}`); } if (cookie.path) { validateCookiePath(cookie.path); out.push(`Path=${cookie.path}`); } if (cookie.expires && cookie.expires.toString() !== "Invalid Date") { out.push(`Expires=${toIMFDate(cookie.expires)}`); } if (cookie.sameSite) { out.push(`SameSite=${cookie.sameSite}`); } for (const part of cookie.unparsed) { if (!part.includes("=")) { throw new Error("Invalid unparsed"); } const [key, ...value] = part.split("="); out.push(`${key.trim()}=${value.join("=")}`); } return out.join("; "); } module2.exports = { isCTLExcludingHtab, validateCookieName, validateCookiePath, validateCookieValue, toIMFDate, stringify }; } }); // node_modules/undici/lib/web/cookies/parse.js var require_parse = __commonJS({ "node_modules/undici/lib/web/cookies/parse.js"(exports2, module2) { "use strict"; var { maxNameValuePairSize, maxAttributeValueSize } = require_constants4(); var { isCTLExcludingHtab } = require_util6(); var { collectASequenceOfCodePointsFast } = require_data_url(); var assert = require("node:assert"); function parseSetCookie(header) { if (isCTLExcludingHtab(header)) { return null; } let nameValuePair = ""; let unparsedAttributes = ""; let name = ""; let value = ""; if (header.includes(";")) { const position = { position: 0 }; nameValuePair = collectASequenceOfCodePointsFast(";", header, position); unparsedAttributes = header.slice(position.position); } else { nameValuePair = header; } if (!nameValuePair.includes("=")) { value = nameValuePair; } else { const position = { position: 0 }; name = collectASequenceOfCodePointsFast( "=", nameValuePair, position ); value = nameValuePair.slice(position.position + 1); } name = name.trim(); value = value.trim(); if (name.length + value.length > maxNameValuePairSize) { return null; } return { name, value, ...parseUnparsedAttributes(unparsedAttributes) }; } function parseUnparsedAttributes(unparsedAttributes, cookieAttributeList = {}) { if (unparsedAttributes.length === 0) { return cookieAttributeList; } assert(unparsedAttributes[0] === ";"); unparsedAttributes = unparsedAttributes.slice(1); let cookieAv = ""; if (unparsedAttributes.includes(";")) { cookieAv = collectASequenceOfCodePointsFast( ";", unparsedAttributes, { position: 0 } ); unparsedAttributes = unparsedAttributes.slice(cookieAv.length); } else { cookieAv = unparsedAttributes; unparsedAttributes = ""; } let attributeName = ""; let attributeValue = ""; if (cookieAv.includes("=")) { const position = { position: 0 }; attributeName = collectASequenceOfCodePointsFast( "=", cookieAv, position ); attributeValue = cookieAv.slice(position.position + 1); } else { attributeName = cookieAv; } attributeName = attributeName.trim(); attributeValue = attributeValue.trim(); if (attributeValue.length > maxAttributeValueSize) { return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); } const attributeNameLowercase = attributeName.toLowerCase(); if (attributeNameLowercase === "expires") { const expiryTime = new Date(attributeValue); cookieAttributeList.expires = expiryTime; } else if (attributeNameLowercase === "max-age") { const charCode = attributeValue.charCodeAt(0); if ((charCode < 48 || charCode > 57) && attributeValue[0] !== "-") { return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); } if (!/^\d+$/.test(attributeValue)) { return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); } const deltaSeconds = Number(attributeValue); cookieAttributeList.maxAge = deltaSeconds; } else if (attributeNameLowercase === "domain") { let cookieDomain = attributeValue; if (cookieDomain[0] === ".") { cookieDomain = cookieDomain.slice(1); } cookieDomain = cookieDomain.toLowerCase(); cookieAttributeList.domain = cookieDomain; } else if (attributeNameLowercase === "path") { let cookiePath = ""; if (attributeValue.length === 0 || attributeValue[0] !== "/") { cookiePath = "/"; } else { cookiePath = attributeValue; } cookieAttributeList.path = cookiePath; } else if (attributeNameLowercase === "secure") { cookieAttributeList.secure = true; } else if (attributeNameLowercase === "httponly") { cookieAttributeList.httpOnly = true; } else if (attributeNameLowercase === "samesite") { let enforcement = "Default"; const attributeValueLowercase = attributeValue.toLowerCase(); if (attributeValueLowercase.includes("none")) { enforcement = "None"; } if (attributeValueLowercase.includes("strict")) { enforcement = "Strict"; } if (attributeValueLowercase.includes("lax")) { enforcement = "Lax"; } cookieAttributeList.sameSite = enforcement; } else { cookieAttributeList.unparsed ??= []; cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`); } return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); } module2.exports = { parseSetCookie, parseUnparsedAttributes }; } }); // node_modules/undici/lib/web/cookies/index.js var require_cookies = __commonJS({ "node_modules/undici/lib/web/cookies/index.js"(exports2, module2) { "use strict"; var { parseSetCookie } = require_parse(); var { stringify } = require_util6(); var { webidl } = require_webidl(); var { Headers: Headers2 } = require_headers(); function getCookies(headers) { webidl.argumentLengthCheck(arguments, 1, "getCookies"); webidl.brandCheck(headers, Headers2, { strict: false }); const cookie = headers.get("cookie"); const out = {}; if (!cookie) { return out; } for (const piece of cookie.split(";")) { const [name, ...value] = piece.split("="); out[name.trim()] = value.join("="); } return out; } function deleteCookie(headers, name, attributes) { webidl.brandCheck(headers, Headers2, { strict: false }); const prefix = "deleteCookie"; webidl.argumentLengthCheck(arguments, 2, prefix); name = webidl.converters.DOMString(name, prefix, "name"); attributes = webidl.converters.DeleteCookieAttributes(attributes); setCookie(headers, { name, value: "", expires: /* @__PURE__ */ new Date(0), ...attributes }); } function getSetCookies(headers) { webidl.argumentLengthCheck(arguments, 1, "getSetCookies"); webidl.brandCheck(headers, Headers2, { strict: false }); const cookies = headers.getSetCookie(); if (!cookies) { return []; } return cookies.map((pair) => parseSetCookie(pair)); } function setCookie(headers, cookie) { webidl.argumentLengthCheck(arguments, 2, "setCookie"); webidl.brandCheck(headers, Headers2, { strict: false }); cookie = webidl.converters.Cookie(cookie); const str = stringify(cookie); if (str) { headers.append("Set-Cookie", str); } } webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ { converter: webidl.nullableConverter(webidl.converters.DOMString), key: "path", defaultValue: () => null }, { converter: webidl.nullableConverter(webidl.converters.DOMString), key: "domain", defaultValue: () => null } ]); webidl.converters.Cookie = webidl.dictionaryConverter([ { converter: webidl.converters.DOMString, key: "name" }, { converter: webidl.converters.DOMString, key: "value" }, { converter: webidl.nullableConverter((value) => { if (typeof value === "number") { return webidl.converters["unsigned long long"](value); } return new Date(value); }), key: "expires", defaultValue: () => null }, { converter: webidl.nullableConverter(webidl.converters["long long"]), key: "maxAge", defaultValue: () => null }, { converter: webidl.nullableConverter(webidl.converters.DOMString), key: "domain", defaultValue: () => null }, { converter: webidl.nullableConverter(webidl.converters.DOMString), key: "path", defaultValue: () => null }, { converter: webidl.nullableConverter(webidl.converters.boolean), key: "secure", defaultValue: () => null }, { converter: webidl.nullableConverter(webidl.converters.boolean), key: "httpOnly", defaultValue: () => null }, { converter: webidl.converters.USVString, key: "sameSite", allowedValues: ["Strict", "Lax", "None"] }, { converter: webidl.sequenceConverter(webidl.converters.DOMString), key: "unparsed", defaultValue: () => new Array(0) } ]); module2.exports = { getCookies, deleteCookie, getSetCookies, setCookie }; } }); // node_modules/undici/lib/web/websocket/events.js var require_events = __commonJS({ "node_modules/undici/lib/web/websocket/events.js"(exports2, module2) { "use strict"; var { webidl } = require_webidl(); var { kEnumerableProperty } = require_util(); var { kConstruct } = require_symbols(); var { MessagePort } = require("node:worker_threads"); var MessageEvent = class _MessageEvent extends Event { #eventInit; constructor(type, eventInitDict = {}) { if (type === kConstruct) { super(arguments[1], arguments[2]); webidl.util.markAsUncloneable(this); return; } const prefix = "MessageEvent constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); type = webidl.converters.DOMString(type, prefix, "type"); eventInitDict = webidl.converters.MessageEventInit(eventInitDict, prefix, "eventInitDict"); super(type, eventInitDict); this.#eventInit = eventInitDict; webidl.util.markAsUncloneable(this); } get data() { webidl.brandCheck(this, _MessageEvent); return this.#eventInit.data; } get origin() { webidl.brandCheck(this, _MessageEvent); return this.#eventInit.origin; } get lastEventId() { webidl.brandCheck(this, _MessageEvent); return this.#eventInit.lastEventId; } get source() { webidl.brandCheck(this, _MessageEvent); return this.#eventInit.source; } get ports() { webidl.brandCheck(this, _MessageEvent); if (!Object.isFrozen(this.#eventInit.ports)) { Object.freeze(this.#eventInit.ports); } return this.#eventInit.ports; } initMessageEvent(type, bubbles = false, cancelable = false, data = null, origin = "", lastEventId = "", source = null, ports = []) { webidl.brandCheck(this, _MessageEvent); webidl.argumentLengthCheck(arguments, 1, "MessageEvent.initMessageEvent"); return new _MessageEvent(type, { bubbles, cancelable, data, origin, lastEventId, source, ports }); } static createFastMessageEvent(type, init) { const messageEvent = new _MessageEvent(kConstruct, type, init); messageEvent.#eventInit = init; messageEvent.#eventInit.data ??= null; messageEvent.#eventInit.origin ??= ""; messageEvent.#eventInit.lastEventId ??= ""; messageEvent.#eventInit.source ??= null; messageEvent.#eventInit.ports ??= []; return messageEvent; } }; var { createFastMessageEvent } = MessageEvent; delete MessageEvent.createFastMessageEvent; var CloseEvent = class _CloseEvent extends Event { #eventInit; constructor(type, eventInitDict = {}) { const prefix = "CloseEvent constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); type = webidl.converters.DOMString(type, prefix, "type"); eventInitDict = webidl.converters.CloseEventInit(eventInitDict); super(type, eventInitDict); this.#eventInit = eventInitDict; webidl.util.markAsUncloneable(this); } get wasClean() { webidl.brandCheck(this, _CloseEvent); return this.#eventInit.wasClean; } get code() { webidl.brandCheck(this, _CloseEvent); return this.#eventInit.code; } get reason() { webidl.brandCheck(this, _CloseEvent); return this.#eventInit.reason; } }; var ErrorEvent = class _ErrorEvent extends Event { #eventInit; constructor(type, eventInitDict) { const prefix = "ErrorEvent constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); super(type, eventInitDict); webidl.util.markAsUncloneable(this); type = webidl.converters.DOMString(type, prefix, "type"); eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}); this.#eventInit = eventInitDict; } get message() { webidl.brandCheck(this, _ErrorEvent); return this.#eventInit.message; } get filename() { webidl.brandCheck(this, _ErrorEvent); return this.#eventInit.filename; } get lineno() { webidl.brandCheck(this, _ErrorEvent); return this.#eventInit.lineno; } get colno() { webidl.brandCheck(this, _ErrorEvent); return this.#eventInit.colno; } get error() { webidl.brandCheck(this, _ErrorEvent); return this.#eventInit.error; } }; Object.defineProperties(MessageEvent.prototype, { [Symbol.toStringTag]: { value: "MessageEvent", configurable: true }, data: kEnumerableProperty, origin: kEnumerableProperty, lastEventId: kEnumerableProperty, source: kEnumerableProperty, ports: kEnumerableProperty, initMessageEvent: kEnumerableProperty }); Object.defineProperties(CloseEvent.prototype, { [Symbol.toStringTag]: { value: "CloseEvent", configurable: true }, reason: kEnumerableProperty, code: kEnumerableProperty, wasClean: kEnumerableProperty }); Object.defineProperties(ErrorEvent.prototype, { [Symbol.toStringTag]: { value: "ErrorEvent", configurable: true }, message: kEnumerableProperty, filename: kEnumerableProperty, lineno: kEnumerableProperty, colno: kEnumerableProperty, error: kEnumerableProperty }); webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort); webidl.converters["sequence"] = webidl.sequenceConverter( webidl.converters.MessagePort ); var eventInit = [ { key: "bubbles", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "cancelable", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "composed", converter: webidl.converters.boolean, defaultValue: () => false } ]; webidl.converters.MessageEventInit = webidl.dictionaryConverter([ ...eventInit, { key: "data", converter: webidl.converters.any, defaultValue: () => null }, { key: "origin", converter: webidl.converters.USVString, defaultValue: () => "" }, { key: "lastEventId", converter: webidl.converters.DOMString, defaultValue: () => "" }, { key: "source", // Node doesn't implement WindowProxy or ServiceWorker, so the only // valid value for source is a MessagePort. converter: webidl.nullableConverter(webidl.converters.MessagePort), defaultValue: () => null }, { key: "ports", converter: webidl.converters["sequence"], defaultValue: () => new Array(0) } ]); webidl.converters.CloseEventInit = webidl.dictionaryConverter([ ...eventInit, { key: "wasClean", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "code", converter: webidl.converters["unsigned short"], defaultValue: () => 0 }, { key: "reason", converter: webidl.converters.USVString, defaultValue: () => "" } ]); webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ ...eventInit, { key: "message", converter: webidl.converters.DOMString, defaultValue: () => "" }, { key: "filename", converter: webidl.converters.USVString, defaultValue: () => "" }, { key: "lineno", converter: webidl.converters["unsigned long"], defaultValue: () => 0 }, { key: "colno", converter: webidl.converters["unsigned long"], defaultValue: () => 0 }, { key: "error", converter: webidl.converters.any } ]); module2.exports = { MessageEvent, CloseEvent, ErrorEvent, createFastMessageEvent }; } }); // node_modules/undici/lib/web/websocket/constants.js var require_constants5 = __commonJS({ "node_modules/undici/lib/web/websocket/constants.js"(exports2, module2) { "use strict"; var uid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; var staticPropertyDescriptors = { enumerable: true, writable: false, configurable: false }; var states = { CONNECTING: 0, OPEN: 1, CLOSING: 2, CLOSED: 3 }; var sentCloseFrameState = { NOT_SENT: 0, PROCESSING: 1, SENT: 2 }; var opcodes = { CONTINUATION: 0, TEXT: 1, BINARY: 2, CLOSE: 8, PING: 9, PONG: 10 }; var maxUnsigned16Bit = 2 ** 16 - 1; var parserStates = { INFO: 0, PAYLOADLENGTH_16: 2, PAYLOADLENGTH_64: 3, READ_DATA: 4 }; var emptyBuffer = Buffer.allocUnsafe(0); var sendHints = { string: 1, typedArray: 2, arrayBuffer: 3, blob: 4 }; module2.exports = { uid, sentCloseFrameState, staticPropertyDescriptors, states, opcodes, maxUnsigned16Bit, parserStates, emptyBuffer, sendHints }; } }); // node_modules/undici/lib/web/websocket/symbols.js var require_symbols5 = __commonJS({ "node_modules/undici/lib/web/websocket/symbols.js"(exports2, module2) { "use strict"; module2.exports = { kWebSocketURL: /* @__PURE__ */ Symbol("url"), kReadyState: /* @__PURE__ */ Symbol("ready state"), kController: /* @__PURE__ */ Symbol("controller"), kResponse: /* @__PURE__ */ Symbol("response"), kBinaryType: /* @__PURE__ */ Symbol("binary type"), kSentClose: /* @__PURE__ */ Symbol("sent close"), kReceivedClose: /* @__PURE__ */ Symbol("received close"), kByteParser: /* @__PURE__ */ Symbol("byte parser") }; } }); // node_modules/undici/lib/web/websocket/util.js var require_util7 = __commonJS({ "node_modules/undici/lib/web/websocket/util.js"(exports2, module2) { "use strict"; var { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require_symbols5(); var { states, opcodes } = require_constants5(); var { ErrorEvent, createFastMessageEvent } = require_events(); var { isUtf8 } = require("node:buffer"); var { collectASequenceOfCodePointsFast, removeHTTPWhitespace } = require_data_url(); function isConnecting(ws) { return ws[kReadyState] === states.CONNECTING; } function isEstablished(ws) { return ws[kReadyState] === states.OPEN; } function isClosing(ws) { return ws[kReadyState] === states.CLOSING; } function isClosed(ws) { return ws[kReadyState] === states.CLOSED; } function fireEvent(e, target, eventFactory = (type, init) => new Event(type, init), eventInitDict = {}) { const event = eventFactory(e, eventInitDict); target.dispatchEvent(event); } function websocketMessageReceived(ws, type, data) { if (ws[kReadyState] !== states.OPEN) { return; } let dataForEvent; if (type === opcodes.TEXT) { try { dataForEvent = utf8Decode(data); } catch { failWebsocketConnection(ws, "Received invalid UTF-8 in text frame."); return; } } else if (type === opcodes.BINARY) { if (ws[kBinaryType] === "blob") { dataForEvent = new Blob([data]); } else { dataForEvent = toArrayBuffer(data); } } fireEvent("message", ws, createFastMessageEvent, { origin: ws[kWebSocketURL].origin, data: dataForEvent }); } function toArrayBuffer(buffer) { if (buffer.byteLength === buffer.buffer.byteLength) { return buffer.buffer; } return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength); } function isValidSubprotocol(protocol) { if (protocol.length === 0) { return false; } for (let i = 0; i < protocol.length; ++i) { const code = protocol.charCodeAt(i); if (code < 33 || // CTL, contains SP (0x20) and HT (0x09) code > 126 || code === 34 || // " code === 40 || // ( code === 41 || // ) code === 44 || // , code === 47 || // / code === 58 || // : code === 59 || // ; code === 60 || // < code === 61 || // = code === 62 || // > code === 63 || // ? code === 64 || // @ code === 91 || // [ code === 92 || // \ code === 93 || // ] code === 123 || // { code === 125) { return false; } } return true; } function isValidStatusCode(code) { if (code >= 1e3 && code < 1015) { return code !== 1004 && // reserved code !== 1005 && // "MUST NOT be set as a status code" code !== 1006; } return code >= 3e3 && code <= 4999; } function failWebsocketConnection(ws, reason) { const { [kController]: controller, [kResponse]: response } = ws; controller.abort(); if (response?.socket && !response.socket.destroyed) { response.socket.destroy(); } if (reason) { fireEvent("error", ws, (type, init) => new ErrorEvent(type, init), { error: new Error(reason), message: reason }); } } function isControlFrame(opcode) { return opcode === opcodes.CLOSE || opcode === opcodes.PING || opcode === opcodes.PONG; } function isContinuationFrame(opcode) { return opcode === opcodes.CONTINUATION; } function isTextBinaryFrame(opcode) { return opcode === opcodes.TEXT || opcode === opcodes.BINARY; } function isValidOpcode(opcode) { return isTextBinaryFrame(opcode) || isContinuationFrame(opcode) || isControlFrame(opcode); } function parseExtensions(extensions) { const position = { position: 0 }; const extensionList = /* @__PURE__ */ new Map(); while (position.position < extensions.length) { const pair = collectASequenceOfCodePointsFast(";", extensions, position); const [name, value = ""] = pair.split("="); extensionList.set( removeHTTPWhitespace(name, true, false), removeHTTPWhitespace(value, false, true) ); position.position++; } return extensionList; } function isValidClientWindowBits(value) { if (value.length === 0) { return false; } for (let i = 0; i < value.length; i++) { const byte = value.charCodeAt(i); if (byte < 48 || byte > 57) { return false; } } const num = Number.parseInt(value, 10); return num >= 8 && num <= 15; } var hasIntl = typeof process.versions.icu === "string"; var fatalDecoder = hasIntl ? new TextDecoder("utf-8", { fatal: true }) : void 0; var utf8Decode = hasIntl ? fatalDecoder.decode.bind(fatalDecoder) : function(buffer) { if (isUtf8(buffer)) { return buffer.toString("utf-8"); } throw new TypeError("Invalid utf-8 received."); }; module2.exports = { isConnecting, isEstablished, isClosing, isClosed, fireEvent, isValidSubprotocol, isValidStatusCode, failWebsocketConnection, websocketMessageReceived, utf8Decode, isControlFrame, isContinuationFrame, isTextBinaryFrame, isValidOpcode, parseExtensions, isValidClientWindowBits }; } }); // node_modules/undici/lib/web/websocket/frame.js var require_frame = __commonJS({ "node_modules/undici/lib/web/websocket/frame.js"(exports2, module2) { "use strict"; var { maxUnsigned16Bit } = require_constants5(); var BUFFER_SIZE = 16386; var crypto3; var buffer = null; var bufIdx = BUFFER_SIZE; try { crypto3 = require("node:crypto"); } catch { crypto3 = { // not full compatibility, but minimum. randomFillSync: function randomFillSync(buffer2, _offset, _size) { for (let i = 0; i < buffer2.length; ++i) { buffer2[i] = Math.random() * 255 | 0; } return buffer2; } }; } function generateMask() { if (bufIdx === BUFFER_SIZE) { bufIdx = 0; crypto3.randomFillSync(buffer ??= Buffer.allocUnsafe(BUFFER_SIZE), 0, BUFFER_SIZE); } return [buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++]]; } var WebsocketFrameSend = class { /** * @param {Buffer|undefined} data */ constructor(data) { this.frameData = data; } createFrame(opcode) { const frameData = this.frameData; const maskKey = generateMask(); const bodyLength = frameData?.byteLength ?? 0; let payloadLength = bodyLength; let offset = 6; if (bodyLength > maxUnsigned16Bit) { offset += 8; payloadLength = 127; } else if (bodyLength > 125) { offset += 2; payloadLength = 126; } const buffer2 = Buffer.allocUnsafe(bodyLength + offset); buffer2[0] = buffer2[1] = 0; buffer2[0] |= 128; buffer2[0] = (buffer2[0] & 240) + opcode; buffer2[offset - 4] = maskKey[0]; buffer2[offset - 3] = maskKey[1]; buffer2[offset - 2] = maskKey[2]; buffer2[offset - 1] = maskKey[3]; buffer2[1] = payloadLength; if (payloadLength === 126) { buffer2.writeUInt16BE(bodyLength, 2); } else if (payloadLength === 127) { buffer2[2] = buffer2[3] = 0; buffer2.writeUIntBE(bodyLength, 4, 6); } buffer2[1] |= 128; for (let i = 0; i < bodyLength; ++i) { buffer2[offset + i] = frameData[i] ^ maskKey[i & 3]; } return buffer2; } }; module2.exports = { WebsocketFrameSend }; } }); // node_modules/undici/lib/web/websocket/connection.js var require_connection = __commonJS({ "node_modules/undici/lib/web/websocket/connection.js"(exports2, module2) { "use strict"; var { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = require_constants5(); var { kReadyState, kSentClose, kByteParser, kReceivedClose, kResponse } = require_symbols5(); var { fireEvent, failWebsocketConnection, isClosing, isClosed, isEstablished, parseExtensions } = require_util7(); var { channels } = require_diagnostics(); var { CloseEvent } = require_events(); var { makeRequest } = require_request2(); var { fetching } = require_fetch(); var { Headers: Headers2, getHeadersList } = require_headers(); var { getDecodeSplit } = require_util2(); var { WebsocketFrameSend } = require_frame(); var crypto3; try { crypto3 = require("node:crypto"); } catch { } function establishWebSocketConnection(url, protocols, client, ws, onEstablish, options) { const requestURL = url; requestURL.protocol = url.protocol === "ws:" ? "http:" : "https:"; const request2 = makeRequest({ urlList: [requestURL], client, serviceWorkers: "none", referrer: "no-referrer", mode: "websocket", credentials: "include", cache: "no-store", redirect: "error" }); if (options.headers) { const headersList = getHeadersList(new Headers2(options.headers)); request2.headersList = headersList; } const keyValue = crypto3.randomBytes(16).toString("base64"); request2.headersList.append("sec-websocket-key", keyValue); request2.headersList.append("sec-websocket-version", "13"); for (const protocol of protocols) { request2.headersList.append("sec-websocket-protocol", protocol); } const permessageDeflate = "permessage-deflate; client_max_window_bits"; request2.headersList.append("sec-websocket-extensions", permessageDeflate); const controller = fetching({ request: request2, useParallelQueue: true, dispatcher: options.dispatcher, processResponse(response) { if (response.type === "error" || response.status !== 101) { failWebsocketConnection(ws, "Received network error or non-101 status code."); return; } if (protocols.length !== 0 && !response.headersList.get("Sec-WebSocket-Protocol")) { failWebsocketConnection(ws, "Server did not respond with sent protocols."); return; } if (response.headersList.get("Upgrade")?.toLowerCase() !== "websocket") { failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".'); return; } if (response.headersList.get("Connection")?.toLowerCase() !== "upgrade") { failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".'); return; } const secWSAccept = response.headersList.get("Sec-WebSocket-Accept"); const digest = crypto3.createHash("sha1").update(keyValue + uid).digest("base64"); if (secWSAccept !== digest) { failWebsocketConnection(ws, "Incorrect hash received in Sec-WebSocket-Accept header."); return; } const secExtension = response.headersList.get("Sec-WebSocket-Extensions"); let extensions; if (secExtension !== null) { extensions = parseExtensions(secExtension); if (!extensions.has("permessage-deflate")) { failWebsocketConnection(ws, "Sec-WebSocket-Extensions header does not match."); return; } } const secProtocol = response.headersList.get("Sec-WebSocket-Protocol"); if (secProtocol !== null) { const requestProtocols = getDecodeSplit("sec-websocket-protocol", request2.headersList); if (!requestProtocols.includes(secProtocol)) { failWebsocketConnection(ws, "Protocol was not set in the opening handshake."); return; } } response.socket.on("data", onSocketData); response.socket.on("close", onSocketClose); response.socket.on("error", onSocketError); if (channels.open.hasSubscribers) { channels.open.publish({ address: response.socket.address(), protocol: secProtocol, extensions: secExtension }); } onEstablish(response, extensions); } }); return controller; } function closeWebSocketConnection(ws, code, reason, reasonByteLength) { if (isClosing(ws) || isClosed(ws)) { } else if (!isEstablished(ws)) { failWebsocketConnection(ws, "Connection was closed before it was established."); ws[kReadyState] = states.CLOSING; } else if (ws[kSentClose] === sentCloseFrameState.NOT_SENT) { ws[kSentClose] = sentCloseFrameState.PROCESSING; const frame = new WebsocketFrameSend(); if (code !== void 0 && reason === void 0) { frame.frameData = Buffer.allocUnsafe(2); frame.frameData.writeUInt16BE(code, 0); } else if (code !== void 0 && reason !== void 0) { frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength); frame.frameData.writeUInt16BE(code, 0); frame.frameData.write(reason, 2, "utf-8"); } else { frame.frameData = emptyBuffer; } const socket = ws[kResponse].socket; socket.write(frame.createFrame(opcodes.CLOSE)); ws[kSentClose] = sentCloseFrameState.SENT; ws[kReadyState] = states.CLOSING; } else { ws[kReadyState] = states.CLOSING; } } function onSocketData(chunk) { if (!this.ws[kByteParser].write(chunk)) { this.pause(); } } function onSocketClose() { const { ws } = this; const { [kResponse]: response } = ws; response.socket.off("data", onSocketData); response.socket.off("close", onSocketClose); response.socket.off("error", onSocketError); const wasClean = ws[kSentClose] === sentCloseFrameState.SENT && ws[kReceivedClose]; let code = 1005; let reason = ""; const result = ws[kByteParser].closingInfo; if (result && !result.error) { code = result.code ?? 1005; reason = result.reason; } else if (!ws[kReceivedClose]) { code = 1006; } ws[kReadyState] = states.CLOSED; fireEvent("close", ws, (type, init) => new CloseEvent(type, init), { wasClean, code, reason }); if (channels.close.hasSubscribers) { channels.close.publish({ websocket: ws, code, reason }); } } function onSocketError(error) { const { ws } = this; ws[kReadyState] = states.CLOSING; if (channels.socketError.hasSubscribers) { channels.socketError.publish(error); } this.destroy(); } module2.exports = { establishWebSocketConnection, closeWebSocketConnection }; } }); // node_modules/undici/lib/web/websocket/permessage-deflate.js var require_permessage_deflate = __commonJS({ "node_modules/undici/lib/web/websocket/permessage-deflate.js"(exports2, module2) { "use strict"; var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = require("node:zlib"); var { isValidClientWindowBits } = require_util7(); var { MessageSizeExceededError } = require_errors(); var tail = Buffer.from([0, 0, 255, 255]); var kBuffer = /* @__PURE__ */ Symbol("kBuffer"); var kLength = /* @__PURE__ */ Symbol("kLength"); var kDefaultMaxDecompressedSize = 4 * 1024 * 1024; var PerMessageDeflate = class { /** @type {import('node:zlib').InflateRaw} */ #inflate; #options = {}; /** @type {boolean} */ #aborted = false; /** @type {Function|null} */ #currentCallback = null; /** * @param {Map} extensions */ constructor(extensions) { this.#options.serverNoContextTakeover = extensions.has("server_no_context_takeover"); this.#options.serverMaxWindowBits = extensions.get("server_max_window_bits"); } decompress(chunk, fin, callback) { if (this.#aborted) { callback(new MessageSizeExceededError()); return; } if (!this.#inflate) { let windowBits = Z_DEFAULT_WINDOWBITS; if (this.#options.serverMaxWindowBits) { if (!isValidClientWindowBits(this.#options.serverMaxWindowBits)) { callback(new Error("Invalid server_max_window_bits")); return; } windowBits = Number.parseInt(this.#options.serverMaxWindowBits); } try { this.#inflate = createInflateRaw({ windowBits }); } catch (err) { callback(err); return; } this.#inflate[kBuffer] = []; this.#inflate[kLength] = 0; this.#inflate.on("data", (data) => { if (this.#aborted) { return; } this.#inflate[kLength] += data.length; if (this.#inflate[kLength] > kDefaultMaxDecompressedSize) { this.#aborted = true; this.#inflate.removeAllListeners(); this.#inflate.destroy(); this.#inflate = null; if (this.#currentCallback) { const cb = this.#currentCallback; this.#currentCallback = null; cb(new MessageSizeExceededError()); } return; } this.#inflate[kBuffer].push(data); }); this.#inflate.on("error", (err) => { this.#inflate = null; callback(err); }); } this.#currentCallback = callback; this.#inflate.write(chunk); if (fin) { this.#inflate.write(tail); } this.#inflate.flush(() => { if (this.#aborted || !this.#inflate) { return; } const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength]); this.#inflate[kBuffer].length = 0; this.#inflate[kLength] = 0; this.#currentCallback = null; callback(null, full); }); } }; module2.exports = { PerMessageDeflate }; } }); // node_modules/undici/lib/web/websocket/receiver.js var require_receiver = __commonJS({ "node_modules/undici/lib/web/websocket/receiver.js"(exports2, module2) { "use strict"; var { Writable } = require("node:stream"); var assert = require("node:assert"); var { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = require_constants5(); var { kReadyState, kSentClose, kResponse, kReceivedClose } = require_symbols5(); var { channels } = require_diagnostics(); var { isValidStatusCode, isValidOpcode, failWebsocketConnection, websocketMessageReceived, utf8Decode, isControlFrame, isTextBinaryFrame, isContinuationFrame } = require_util7(); var { WebsocketFrameSend } = require_frame(); var { closeWebSocketConnection } = require_connection(); var { PerMessageDeflate } = require_permessage_deflate(); var ByteParser = class extends Writable { #buffers = []; #byteOffset = 0; #loop = false; #state = parserStates.INFO; #info = {}; #fragments = []; /** @type {Map} */ #extensions; /** * @param {import('./websocket').WebSocket} ws * @param {Map|null} extensions */ constructor(ws, extensions) { super(); this.ws = ws; this.#extensions = extensions == null ? /* @__PURE__ */ new Map() : extensions; if (this.#extensions.has("permessage-deflate")) { this.#extensions.set("permessage-deflate", new PerMessageDeflate(extensions)); } } /** * @param {Buffer} chunk * @param {() => void} callback */ _write(chunk, _, callback) { this.#buffers.push(chunk); this.#byteOffset += chunk.length; this.#loop = true; this.run(callback); } /** * Runs whenever a new chunk is received. * Callback is called whenever there are no more chunks buffering, * or not enough bytes are buffered to parse. */ run(callback) { while (this.#loop) { if (this.#state === parserStates.INFO) { if (this.#byteOffset < 2) { return callback(); } const buffer = this.consume(2); const fin = (buffer[0] & 128) !== 0; const opcode = buffer[0] & 15; const masked = (buffer[1] & 128) === 128; const fragmented = !fin && opcode !== opcodes.CONTINUATION; const payloadLength = buffer[1] & 127; const rsv1 = buffer[0] & 64; const rsv2 = buffer[0] & 32; const rsv3 = buffer[0] & 16; if (!isValidOpcode(opcode)) { failWebsocketConnection(this.ws, "Invalid opcode received"); return callback(); } if (masked) { failWebsocketConnection(this.ws, "Frame cannot be masked"); return callback(); } if (rsv1 !== 0 && !this.#extensions.has("permessage-deflate")) { failWebsocketConnection(this.ws, "Expected RSV1 to be clear."); return; } if (rsv2 !== 0 || rsv3 !== 0) { failWebsocketConnection(this.ws, "RSV1, RSV2, RSV3 must be clear"); return; } if (fragmented && !isTextBinaryFrame(opcode)) { failWebsocketConnection(this.ws, "Invalid frame type was fragmented."); return; } if (isTextBinaryFrame(opcode) && this.#fragments.length > 0) { failWebsocketConnection(this.ws, "Expected continuation frame"); return; } if (this.#info.fragmented && fragmented) { failWebsocketConnection(this.ws, "Fragmented frame exceeded 125 bytes."); return; } if ((payloadLength > 125 || fragmented) && isControlFrame(opcode)) { failWebsocketConnection(this.ws, "Control frame either too large or fragmented"); return; } if (isContinuationFrame(opcode) && this.#fragments.length === 0 && !this.#info.compressed) { failWebsocketConnection(this.ws, "Unexpected continuation frame"); return; } if (payloadLength <= 125) { this.#info.payloadLength = payloadLength; this.#state = parserStates.READ_DATA; } else if (payloadLength === 126) { this.#state = parserStates.PAYLOADLENGTH_16; } else if (payloadLength === 127) { this.#state = parserStates.PAYLOADLENGTH_64; } if (isTextBinaryFrame(opcode)) { this.#info.binaryType = opcode; this.#info.compressed = rsv1 !== 0; } this.#info.opcode = opcode; this.#info.masked = masked; this.#info.fin = fin; this.#info.fragmented = fragmented; } else if (this.#state === parserStates.PAYLOADLENGTH_16) { if (this.#byteOffset < 2) { return callback(); } const buffer = this.consume(2); this.#info.payloadLength = buffer.readUInt16BE(0); this.#state = parserStates.READ_DATA; } else if (this.#state === parserStates.PAYLOADLENGTH_64) { if (this.#byteOffset < 8) { return callback(); } const buffer = this.consume(8); const upper = buffer.readUInt32BE(0); const lower = buffer.readUInt32BE(4); if (upper !== 0 || lower > 2 ** 31 - 1) { failWebsocketConnection(this.ws, "Received payload length > 2^31 bytes."); return; } this.#info.payloadLength = lower; this.#state = parserStates.READ_DATA; } else if (this.#state === parserStates.READ_DATA) { if (this.#byteOffset < this.#info.payloadLength) { return callback(); } const body = this.consume(this.#info.payloadLength); if (isControlFrame(this.#info.opcode)) { this.#loop = this.parseControlFrame(body); this.#state = parserStates.INFO; } else { if (!this.#info.compressed) { this.#fragments.push(body); if (!this.#info.fragmented && this.#info.fin) { const fullMessage = Buffer.concat(this.#fragments); websocketMessageReceived(this.ws, this.#info.binaryType, fullMessage); this.#fragments.length = 0; } this.#state = parserStates.INFO; } else { this.#extensions.get("permessage-deflate").decompress(body, this.#info.fin, (error, data) => { if (error) { failWebsocketConnection(this.ws, error.message); return; } this.#fragments.push(data); if (!this.#info.fin) { this.#state = parserStates.INFO; this.#loop = true; this.run(callback); return; } websocketMessageReceived(this.ws, this.#info.binaryType, Buffer.concat(this.#fragments)); this.#loop = true; this.#state = parserStates.INFO; this.#fragments.length = 0; this.run(callback); }); this.#loop = false; break; } } } } } /** * Take n bytes from the buffered Buffers * @param {number} n * @returns {Buffer} */ consume(n) { if (n > this.#byteOffset) { throw new Error("Called consume() before buffers satiated."); } else if (n === 0) { return emptyBuffer; } if (this.#buffers[0].length === n) { this.#byteOffset -= this.#buffers[0].length; return this.#buffers.shift(); } const buffer = Buffer.allocUnsafe(n); let offset = 0; while (offset !== n) { const next = this.#buffers[0]; const { length } = next; if (length + offset === n) { buffer.set(this.#buffers.shift(), offset); break; } else if (length + offset > n) { buffer.set(next.subarray(0, n - offset), offset); this.#buffers[0] = next.subarray(n - offset); break; } else { buffer.set(this.#buffers.shift(), offset); offset += next.length; } } this.#byteOffset -= n; return buffer; } parseCloseBody(data) { assert(data.length !== 1); let code; if (data.length >= 2) { code = data.readUInt16BE(0); } if (code !== void 0 && !isValidStatusCode(code)) { return { code: 1002, reason: "Invalid status code", error: true }; } let reason = data.subarray(2); if (reason[0] === 239 && reason[1] === 187 && reason[2] === 191) { reason = reason.subarray(3); } try { reason = utf8Decode(reason); } catch { return { code: 1007, reason: "Invalid UTF-8", error: true }; } return { code, reason, error: false }; } /** * Parses control frames. * @param {Buffer} body */ parseControlFrame(body) { const { opcode, payloadLength } = this.#info; if (opcode === opcodes.CLOSE) { if (payloadLength === 1) { failWebsocketConnection(this.ws, "Received close frame with a 1-byte body."); return false; } this.#info.closeInfo = this.parseCloseBody(body); if (this.#info.closeInfo.error) { const { code, reason } = this.#info.closeInfo; closeWebSocketConnection(this.ws, code, reason, reason.length); failWebsocketConnection(this.ws, reason); return false; } if (this.ws[kSentClose] !== sentCloseFrameState.SENT) { let body2 = emptyBuffer; if (this.#info.closeInfo.code) { body2 = Buffer.allocUnsafe(2); body2.writeUInt16BE(this.#info.closeInfo.code, 0); } const closeFrame = new WebsocketFrameSend(body2); this.ws[kResponse].socket.write( closeFrame.createFrame(opcodes.CLOSE), (err) => { if (!err) { this.ws[kSentClose] = sentCloseFrameState.SENT; } } ); } this.ws[kReadyState] = states.CLOSING; this.ws[kReceivedClose] = true; return false; } else if (opcode === opcodes.PING) { if (!this.ws[kReceivedClose]) { const frame = new WebsocketFrameSend(body); this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)); if (channels.ping.hasSubscribers) { channels.ping.publish({ payload: body }); } } } else if (opcode === opcodes.PONG) { if (channels.pong.hasSubscribers) { channels.pong.publish({ payload: body }); } } return true; } get closingInfo() { return this.#info.closeInfo; } }; module2.exports = { ByteParser }; } }); // node_modules/undici/lib/web/websocket/sender.js var require_sender = __commonJS({ "node_modules/undici/lib/web/websocket/sender.js"(exports2, module2) { "use strict"; var { WebsocketFrameSend } = require_frame(); var { opcodes, sendHints } = require_constants5(); var FixedQueue = require_fixed_queue(); var FastBuffer = Buffer[Symbol.species]; var SendQueue = class { /** * @type {FixedQueue} */ #queue = new FixedQueue(); /** * @type {boolean} */ #running = false; /** @type {import('node:net').Socket} */ #socket; constructor(socket) { this.#socket = socket; } add(item, cb, hint) { if (hint !== sendHints.blob) { const frame = createFrame(item, hint); if (!this.#running) { this.#socket.write(frame, cb); } else { const node2 = { promise: null, callback: cb, frame }; this.#queue.push(node2); } return; } const node = { promise: item.arrayBuffer().then((ab) => { node.promise = null; node.frame = createFrame(ab, hint); }), callback: cb, frame: null }; this.#queue.push(node); if (!this.#running) { this.#run(); } } async #run() { this.#running = true; const queue = this.#queue; while (!queue.isEmpty()) { const node = queue.shift(); if (node.promise !== null) { await node.promise; } this.#socket.write(node.frame, node.callback); node.callback = node.frame = null; } this.#running = false; } }; function createFrame(data, hint) { return new WebsocketFrameSend(toBuffer(data, hint)).createFrame(hint === sendHints.string ? opcodes.TEXT : opcodes.BINARY); } function toBuffer(data, hint) { switch (hint) { case sendHints.string: return Buffer.from(data); case sendHints.arrayBuffer: case sendHints.blob: return new FastBuffer(data); case sendHints.typedArray: return new FastBuffer(data.buffer, data.byteOffset, data.byteLength); } } module2.exports = { SendQueue }; } }); // node_modules/undici/lib/web/websocket/websocket.js var require_websocket = __commonJS({ "node_modules/undici/lib/web/websocket/websocket.js"(exports2, module2) { "use strict"; var { webidl } = require_webidl(); var { URLSerializer } = require_data_url(); var { environmentSettingsObject } = require_util2(); var { staticPropertyDescriptors, states, sentCloseFrameState, sendHints } = require_constants5(); var { kWebSocketURL, kReadyState, kController, kBinaryType, kResponse, kSentClose, kByteParser } = require_symbols5(); var { isConnecting, isEstablished, isClosing, isValidSubprotocol, fireEvent } = require_util7(); var { establishWebSocketConnection, closeWebSocketConnection } = require_connection(); var { ByteParser } = require_receiver(); var { kEnumerableProperty, isBlobLike } = require_util(); var { getGlobalDispatcher } = require_global2(); var { types } = require("node:util"); var { ErrorEvent, CloseEvent } = require_events(); var { SendQueue } = require_sender(); var WebSocket = class _WebSocket extends EventTarget { #events = { open: null, error: null, close: null, message: null }; #bufferedAmount = 0; #protocol = ""; #extensions = ""; /** @type {SendQueue} */ #sendQueue; /** * @param {string} url * @param {string|string[]} protocols */ constructor(url, protocols = []) { super(); webidl.util.markAsUncloneable(this); const prefix = "WebSocket constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); const options = webidl.converters["DOMString or sequence or WebSocketInit"](protocols, prefix, "options"); url = webidl.converters.USVString(url, prefix, "url"); protocols = options.protocols; const baseURL = environmentSettingsObject.settingsObject.baseUrl; let urlRecord; try { urlRecord = new URL(url, baseURL); } catch (e) { throw new DOMException(e, "SyntaxError"); } if (urlRecord.protocol === "http:") { urlRecord.protocol = "ws:"; } else if (urlRecord.protocol === "https:") { urlRecord.protocol = "wss:"; } if (urlRecord.protocol !== "ws:" && urlRecord.protocol !== "wss:") { throw new DOMException( `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, "SyntaxError" ); } if (urlRecord.hash || urlRecord.href.endsWith("#")) { throw new DOMException("Got fragment", "SyntaxError"); } if (typeof protocols === "string") { protocols = [protocols]; } if (protocols.length !== new Set(protocols.map((p) => p.toLowerCase())).size) { throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError"); } if (protocols.length > 0 && !protocols.every((p) => isValidSubprotocol(p))) { throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError"); } this[kWebSocketURL] = new URL(urlRecord.href); const client = environmentSettingsObject.settingsObject; this[kController] = establishWebSocketConnection( urlRecord, protocols, client, this, (response, extensions) => this.#onConnectionEstablished(response, extensions), options ); this[kReadyState] = _WebSocket.CONNECTING; this[kSentClose] = sentCloseFrameState.NOT_SENT; this[kBinaryType] = "blob"; } /** * @see https://websockets.spec.whatwg.org/#dom-websocket-close * @param {number|undefined} code * @param {string|undefined} reason */ close(code = void 0, reason = void 0) { webidl.brandCheck(this, _WebSocket); const prefix = "WebSocket.close"; if (code !== void 0) { code = webidl.converters["unsigned short"](code, prefix, "code", { clamp: true }); } if (reason !== void 0) { reason = webidl.converters.USVString(reason, prefix, "reason"); } if (code !== void 0) { if (code !== 1e3 && (code < 3e3 || code > 4999)) { throw new DOMException("invalid code", "InvalidAccessError"); } } let reasonByteLength = 0; if (reason !== void 0) { reasonByteLength = Buffer.byteLength(reason); if (reasonByteLength > 123) { throw new DOMException( `Reason must be less than 123 bytes; received ${reasonByteLength}`, "SyntaxError" ); } } closeWebSocketConnection(this, code, reason, reasonByteLength); } /** * @see https://websockets.spec.whatwg.org/#dom-websocket-send * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data */ send(data) { webidl.brandCheck(this, _WebSocket); const prefix = "WebSocket.send"; webidl.argumentLengthCheck(arguments, 1, prefix); data = webidl.converters.WebSocketSendData(data, prefix, "data"); if (isConnecting(this)) { throw new DOMException("Sent before connected.", "InvalidStateError"); } if (!isEstablished(this) || isClosing(this)) { return; } if (typeof data === "string") { const length = Buffer.byteLength(data); this.#bufferedAmount += length; this.#sendQueue.add(data, () => { this.#bufferedAmount -= length; }, sendHints.string); } else if (types.isArrayBuffer(data)) { this.#bufferedAmount += data.byteLength; this.#sendQueue.add(data, () => { this.#bufferedAmount -= data.byteLength; }, sendHints.arrayBuffer); } else if (ArrayBuffer.isView(data)) { this.#bufferedAmount += data.byteLength; this.#sendQueue.add(data, () => { this.#bufferedAmount -= data.byteLength; }, sendHints.typedArray); } else if (isBlobLike(data)) { this.#bufferedAmount += data.size; this.#sendQueue.add(data, () => { this.#bufferedAmount -= data.size; }, sendHints.blob); } } get readyState() { webidl.brandCheck(this, _WebSocket); return this[kReadyState]; } get bufferedAmount() { webidl.brandCheck(this, _WebSocket); return this.#bufferedAmount; } get url() { webidl.brandCheck(this, _WebSocket); return URLSerializer(this[kWebSocketURL]); } get extensions() { webidl.brandCheck(this, _WebSocket); return this.#extensions; } get protocol() { webidl.brandCheck(this, _WebSocket); return this.#protocol; } get onopen() { webidl.brandCheck(this, _WebSocket); return this.#events.open; } set onopen(fn) { webidl.brandCheck(this, _WebSocket); if (this.#events.open) { this.removeEventListener("open", this.#events.open); } if (typeof fn === "function") { this.#events.open = fn; this.addEventListener("open", fn); } else { this.#events.open = null; } } get onerror() { webidl.brandCheck(this, _WebSocket); return this.#events.error; } set onerror(fn) { webidl.brandCheck(this, _WebSocket); if (this.#events.error) { this.removeEventListener("error", this.#events.error); } if (typeof fn === "function") { this.#events.error = fn; this.addEventListener("error", fn); } else { this.#events.error = null; } } get onclose() { webidl.brandCheck(this, _WebSocket); return this.#events.close; } set onclose(fn) { webidl.brandCheck(this, _WebSocket); if (this.#events.close) { this.removeEventListener("close", this.#events.close); } if (typeof fn === "function") { this.#events.close = fn; this.addEventListener("close", fn); } else { this.#events.close = null; } } get onmessage() { webidl.brandCheck(this, _WebSocket); return this.#events.message; } set onmessage(fn) { webidl.brandCheck(this, _WebSocket); if (this.#events.message) { this.removeEventListener("message", this.#events.message); } if (typeof fn === "function") { this.#events.message = fn; this.addEventListener("message", fn); } else { this.#events.message = null; } } get binaryType() { webidl.brandCheck(this, _WebSocket); return this[kBinaryType]; } set binaryType(type) { webidl.brandCheck(this, _WebSocket); if (type !== "blob" && type !== "arraybuffer") { this[kBinaryType] = "blob"; } else { this[kBinaryType] = type; } } /** * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol */ #onConnectionEstablished(response, parsedExtensions) { this[kResponse] = response; const parser = new ByteParser(this, parsedExtensions); parser.on("drain", onParserDrain); parser.on("error", onParserError.bind(this)); response.socket.ws = this; this[kByteParser] = parser; this.#sendQueue = new SendQueue(response.socket); this[kReadyState] = states.OPEN; const extensions = response.headersList.get("sec-websocket-extensions"); if (extensions !== null) { this.#extensions = extensions; } const protocol = response.headersList.get("sec-websocket-protocol"); if (protocol !== null) { this.#protocol = protocol; } fireEvent("open", this); } }; WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING; WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN; WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING; WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED; Object.defineProperties(WebSocket.prototype, { CONNECTING: staticPropertyDescriptors, OPEN: staticPropertyDescriptors, CLOSING: staticPropertyDescriptors, CLOSED: staticPropertyDescriptors, url: kEnumerableProperty, readyState: kEnumerableProperty, bufferedAmount: kEnumerableProperty, onopen: kEnumerableProperty, onerror: kEnumerableProperty, onclose: kEnumerableProperty, close: kEnumerableProperty, onmessage: kEnumerableProperty, binaryType: kEnumerableProperty, send: kEnumerableProperty, extensions: kEnumerableProperty, protocol: kEnumerableProperty, [Symbol.toStringTag]: { value: "WebSocket", writable: false, enumerable: false, configurable: true } }); Object.defineProperties(WebSocket, { CONNECTING: staticPropertyDescriptors, OPEN: staticPropertyDescriptors, CLOSING: staticPropertyDescriptors, CLOSED: staticPropertyDescriptors }); webidl.converters["sequence"] = webidl.sequenceConverter( webidl.converters.DOMString ); webidl.converters["DOMString or sequence"] = function(V, prefix, argument) { if (webidl.util.Type(V) === "Object" && Symbol.iterator in V) { return webidl.converters["sequence"](V); } return webidl.converters.DOMString(V, prefix, argument); }; webidl.converters.WebSocketInit = webidl.dictionaryConverter([ { key: "protocols", converter: webidl.converters["DOMString or sequence"], defaultValue: () => new Array(0) }, { key: "dispatcher", converter: webidl.converters.any, defaultValue: () => getGlobalDispatcher() }, { key: "headers", converter: webidl.nullableConverter(webidl.converters.HeadersInit) } ]); webidl.converters["DOMString or sequence or WebSocketInit"] = function(V) { if (webidl.util.Type(V) === "Object" && !(Symbol.iterator in V)) { return webidl.converters.WebSocketInit(V); } return { protocols: webidl.converters["DOMString or sequence"](V) }; }; webidl.converters.WebSocketSendData = function(V) { if (webidl.util.Type(V) === "Object") { if (isBlobLike(V)) { return webidl.converters.Blob(V, { strict: false }); } if (ArrayBuffer.isView(V) || types.isArrayBuffer(V)) { return webidl.converters.BufferSource(V); } } return webidl.converters.USVString(V); }; function onParserDrain() { this.ws[kResponse].socket.resume(); } function onParserError(err) { let message; let code; if (err instanceof CloseEvent) { message = err.reason; code = err.code; } else { message = err.message; } fireEvent("error", this, () => new ErrorEvent("error", { error: err, message })); closeWebSocketConnection(this, code); } module2.exports = { WebSocket }; } }); // node_modules/undici/lib/web/eventsource/util.js var require_util8 = __commonJS({ "node_modules/undici/lib/web/eventsource/util.js"(exports2, module2) { "use strict"; function isValidLastEventId(value) { return value.indexOf("\0") === -1; } function isASCIINumber(value) { if (value.length === 0) return false; for (let i = 0; i < value.length; i++) { if (value.charCodeAt(i) < 48 || value.charCodeAt(i) > 57) return false; } return true; } function delay(ms) { return new Promise((resolve) => { setTimeout(resolve, ms).unref(); }); } module2.exports = { isValidLastEventId, isASCIINumber, delay }; } }); // node_modules/undici/lib/web/eventsource/eventsource-stream.js var require_eventsource_stream = __commonJS({ "node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports2, module2) { "use strict"; var { Transform } = require("node:stream"); var { isASCIINumber, isValidLastEventId } = require_util8(); var BOM = [239, 187, 191]; var LF = 10; var CR = 13; var COLON = 58; var SPACE = 32; var EventSourceStream = class extends Transform { /** * @type {eventSourceSettings} */ state = null; /** * Leading byte-order-mark check. * @type {boolean} */ checkBOM = true; /** * @type {boolean} */ crlfCheck = false; /** * @type {boolean} */ eventEndCheck = false; /** * @type {Buffer} */ buffer = null; pos = 0; event = { data: void 0, event: void 0, id: void 0, retry: void 0 }; /** * @param {object} options * @param {eventSourceSettings} options.eventSourceSettings * @param {Function} [options.push] */ constructor(options = {}) { options.readableObjectMode = true; super(options); this.state = options.eventSourceSettings || {}; if (options.push) { this.push = options.push; } } /** * @param {Buffer} chunk * @param {string} _encoding * @param {Function} callback * @returns {void} */ _transform(chunk, _encoding, callback) { if (chunk.length === 0) { callback(); return; } if (this.buffer) { this.buffer = Buffer.concat([this.buffer, chunk]); } else { this.buffer = chunk; } if (this.checkBOM) { switch (this.buffer.length) { case 1: if (this.buffer[0] === BOM[0]) { callback(); return; } this.checkBOM = false; callback(); return; case 2: if (this.buffer[0] === BOM[0] && this.buffer[1] === BOM[1]) { callback(); return; } this.checkBOM = false; break; case 3: if (this.buffer[0] === BOM[0] && this.buffer[1] === BOM[1] && this.buffer[2] === BOM[2]) { this.buffer = Buffer.alloc(0); this.checkBOM = false; callback(); return; } this.checkBOM = false; break; default: if (this.buffer[0] === BOM[0] && this.buffer[1] === BOM[1] && this.buffer[2] === BOM[2]) { this.buffer = this.buffer.subarray(3); } this.checkBOM = false; break; } } while (this.pos < this.buffer.length) { if (this.eventEndCheck) { if (this.crlfCheck) { if (this.buffer[this.pos] === LF) { this.buffer = this.buffer.subarray(this.pos + 1); this.pos = 0; this.crlfCheck = false; continue; } this.crlfCheck = false; } if (this.buffer[this.pos] === LF || this.buffer[this.pos] === CR) { if (this.buffer[this.pos] === CR) { this.crlfCheck = true; } this.buffer = this.buffer.subarray(this.pos + 1); this.pos = 0; if (this.event.data !== void 0 || this.event.event || this.event.id || this.event.retry) { this.processEvent(this.event); } this.clearEvent(); continue; } this.eventEndCheck = false; continue; } if (this.buffer[this.pos] === LF || this.buffer[this.pos] === CR) { if (this.buffer[this.pos] === CR) { this.crlfCheck = true; } this.parseLine(this.buffer.subarray(0, this.pos), this.event); this.buffer = this.buffer.subarray(this.pos + 1); this.pos = 0; this.eventEndCheck = true; continue; } this.pos++; } callback(); } /** * @param {Buffer} line * @param {EventStreamEvent} event */ parseLine(line, event) { if (line.length === 0) { return; } const colonPosition = line.indexOf(COLON); if (colonPosition === 0) { return; } let field = ""; let value = ""; if (colonPosition !== -1) { field = line.subarray(0, colonPosition).toString("utf8"); let valueStart = colonPosition + 1; if (line[valueStart] === SPACE) { ++valueStart; } value = line.subarray(valueStart).toString("utf8"); } else { field = line.toString("utf8"); value = ""; } switch (field) { case "data": if (event[field] === void 0) { event[field] = value; } else { event[field] += ` ${value}`; } break; case "retry": if (isASCIINumber(value)) { event[field] = value; } break; case "id": if (isValidLastEventId(value)) { event[field] = value; } break; case "event": if (value.length > 0) { event[field] = value; } break; } } /** * @param {EventSourceStreamEvent} event */ processEvent(event) { if (event.retry && isASCIINumber(event.retry)) { this.state.reconnectionTime = parseInt(event.retry, 10); } if (event.id && isValidLastEventId(event.id)) { this.state.lastEventId = event.id; } if (event.data !== void 0) { this.push({ type: event.event || "message", options: { data: event.data, lastEventId: this.state.lastEventId, origin: this.state.origin } }); } } clearEvent() { this.event = { data: void 0, event: void 0, id: void 0, retry: void 0 }; } }; module2.exports = { EventSourceStream }; } }); // node_modules/undici/lib/web/eventsource/eventsource.js var require_eventsource = __commonJS({ "node_modules/undici/lib/web/eventsource/eventsource.js"(exports2, module2) { "use strict"; var { pipeline: pipeline2 } = require("node:stream"); var { fetching } = require_fetch(); var { makeRequest } = require_request2(); var { webidl } = require_webidl(); var { EventSourceStream } = require_eventsource_stream(); var { parseMIMEType } = require_data_url(); var { createFastMessageEvent } = require_events(); var { isNetworkError } = require_response(); var { delay } = require_util8(); var { kEnumerableProperty } = require_util(); var { environmentSettingsObject } = require_util2(); var experimentalWarned = false; var defaultReconnectionTime = 3e3; var CONNECTING = 0; var OPEN = 1; var CLOSED = 2; var ANONYMOUS = "anonymous"; var USE_CREDENTIALS = "use-credentials"; var EventSource = class _EventSource extends EventTarget { #events = { open: null, error: null, message: null }; #url = null; #withCredentials = false; #readyState = CONNECTING; #request = null; #controller = null; #dispatcher; /** * @type {import('./eventsource-stream').eventSourceSettings} */ #state; /** * Creates a new EventSource object. * @param {string} url * @param {EventSourceInit} [eventSourceInitDict] * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface */ constructor(url, eventSourceInitDict = {}) { super(); webidl.util.markAsUncloneable(this); const prefix = "EventSource constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); if (!experimentalWarned) { experimentalWarned = true; process.emitWarning("EventSource is experimental, expect them to change at any time.", { code: "UNDICI-ES" }); } url = webidl.converters.USVString(url, prefix, "url"); eventSourceInitDict = webidl.converters.EventSourceInitDict(eventSourceInitDict, prefix, "eventSourceInitDict"); this.#dispatcher = eventSourceInitDict.dispatcher; this.#state = { lastEventId: "", reconnectionTime: defaultReconnectionTime }; const settings = environmentSettingsObject; let urlRecord; try { urlRecord = new URL(url, settings.settingsObject.baseUrl); this.#state.origin = urlRecord.origin; } catch (e) { throw new DOMException(e, "SyntaxError"); } this.#url = urlRecord.href; let corsAttributeState = ANONYMOUS; if (eventSourceInitDict.withCredentials) { corsAttributeState = USE_CREDENTIALS; this.#withCredentials = true; } const initRequest = { redirect: "follow", keepalive: true, // @see https://html.spec.whatwg.org/multipage/urls-and-fetching.html#cors-settings-attributes mode: "cors", credentials: corsAttributeState === "anonymous" ? "same-origin" : "omit", referrer: "no-referrer" }; initRequest.client = environmentSettingsObject.settingsObject; initRequest.headersList = [["accept", { name: "accept", value: "text/event-stream" }]]; initRequest.cache = "no-store"; initRequest.initiator = "other"; initRequest.urlList = [new URL(this.#url)]; this.#request = makeRequest(initRequest); this.#connect(); } /** * Returns the state of this EventSource object's connection. It can have the * values described below. * @returns {0|1|2} * @readonly */ get readyState() { return this.#readyState; } /** * Returns the URL providing the event stream. * @readonly * @returns {string} */ get url() { return this.#url; } /** * Returns a boolean indicating whether the EventSource object was * instantiated with CORS credentials set (true), or not (false, the default). */ get withCredentials() { return this.#withCredentials; } #connect() { if (this.#readyState === CLOSED) return; this.#readyState = CONNECTING; const fetchParams = { request: this.#request, dispatcher: this.#dispatcher }; const processEventSourceEndOfBody = (response) => { if (isNetworkError(response)) { this.dispatchEvent(new Event("error")); this.close(); } this.#reconnect(); }; fetchParams.processResponseEndOfBody = processEventSourceEndOfBody; fetchParams.processResponse = (response) => { if (isNetworkError(response)) { if (response.aborted) { this.close(); this.dispatchEvent(new Event("error")); return; } else { this.#reconnect(); return; } } const contentType = response.headersList.get("content-type", true); const mimeType = contentType !== null ? parseMIMEType(contentType) : "failure"; const contentTypeValid = mimeType !== "failure" && mimeType.essence === "text/event-stream"; if (response.status !== 200 || contentTypeValid === false) { this.close(); this.dispatchEvent(new Event("error")); return; } this.#readyState = OPEN; this.dispatchEvent(new Event("open")); this.#state.origin = response.urlList[response.urlList.length - 1].origin; const eventSourceStream = new EventSourceStream({ eventSourceSettings: this.#state, push: (event) => { this.dispatchEvent(createFastMessageEvent( event.type, event.options )); } }); pipeline2( response.body.stream, eventSourceStream, (error) => { if (error?.aborted === false) { this.close(); this.dispatchEvent(new Event("error")); } } ); }; this.#controller = fetching(fetchParams); } /** * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#sse-processing-model * @returns {Promise} */ async #reconnect() { if (this.#readyState === CLOSED) return; this.#readyState = CONNECTING; this.dispatchEvent(new Event("error")); await delay(this.#state.reconnectionTime); if (this.#readyState !== CONNECTING) return; if (this.#state.lastEventId.length) { this.#request.headersList.set("last-event-id", this.#state.lastEventId, true); } this.#connect(); } /** * Closes the connection, if any, and sets the readyState attribute to * CLOSED. */ close() { webidl.brandCheck(this, _EventSource); if (this.#readyState === CLOSED) return; this.#readyState = CLOSED; this.#controller.abort(); this.#request = null; } get onopen() { return this.#events.open; } set onopen(fn) { if (this.#events.open) { this.removeEventListener("open", this.#events.open); } if (typeof fn === "function") { this.#events.open = fn; this.addEventListener("open", fn); } else { this.#events.open = null; } } get onmessage() { return this.#events.message; } set onmessage(fn) { if (this.#events.message) { this.removeEventListener("message", this.#events.message); } if (typeof fn === "function") { this.#events.message = fn; this.addEventListener("message", fn); } else { this.#events.message = null; } } get onerror() { return this.#events.error; } set onerror(fn) { if (this.#events.error) { this.removeEventListener("error", this.#events.error); } if (typeof fn === "function") { this.#events.error = fn; this.addEventListener("error", fn); } else { this.#events.error = null; } } }; var constantsPropertyDescriptors = { CONNECTING: { __proto__: null, configurable: false, enumerable: true, value: CONNECTING, writable: false }, OPEN: { __proto__: null, configurable: false, enumerable: true, value: OPEN, writable: false }, CLOSED: { __proto__: null, configurable: false, enumerable: true, value: CLOSED, writable: false } }; Object.defineProperties(EventSource, constantsPropertyDescriptors); Object.defineProperties(EventSource.prototype, constantsPropertyDescriptors); Object.defineProperties(EventSource.prototype, { close: kEnumerableProperty, onerror: kEnumerableProperty, onmessage: kEnumerableProperty, onopen: kEnumerableProperty, readyState: kEnumerableProperty, url: kEnumerableProperty, withCredentials: kEnumerableProperty }); webidl.converters.EventSourceInitDict = webidl.dictionaryConverter([ { key: "withCredentials", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "dispatcher", // undici only converter: webidl.converters.any } ]); module2.exports = { EventSource, defaultReconnectionTime }; } }); // node_modules/undici/index.js var require_undici = __commonJS({ "node_modules/undici/index.js"(exports2, module2) { "use strict"; var Client = require_client(); var Dispatcher = require_dispatcher(); var Pool = require_pool(); var BalancedPool = require_balanced_pool(); var Agent3 = require_agent(); var ProxyAgent2 = require_proxy_agent(); var EnvHttpProxyAgent = require_env_http_proxy_agent(); var RetryAgent = require_retry_agent(); var errors = require_errors(); var util2 = require_util(); var { InvalidArgumentError } = errors; var api = require_api(); var buildConnector = require_connect(); var MockClient = require_mock_client(); var MockAgent = require_mock_agent(); var MockPool = require_mock_pool(); var mockErrors = require_mock_errors(); var RetryHandler = require_retry_handler(); var { getGlobalDispatcher, setGlobalDispatcher } = require_global2(); var DecoratorHandler = require_decorator_handler(); var RedirectHandler = require_redirect_handler(); var createRedirectInterceptor = require_redirect_interceptor(); Object.assign(Dispatcher.prototype, api); module2.exports.Dispatcher = Dispatcher; module2.exports.Client = Client; module2.exports.Pool = Pool; module2.exports.BalancedPool = BalancedPool; module2.exports.Agent = Agent3; module2.exports.ProxyAgent = ProxyAgent2; module2.exports.EnvHttpProxyAgent = EnvHttpProxyAgent; module2.exports.RetryAgent = RetryAgent; module2.exports.RetryHandler = RetryHandler; module2.exports.DecoratorHandler = DecoratorHandler; module2.exports.RedirectHandler = RedirectHandler; module2.exports.createRedirectInterceptor = createRedirectInterceptor; module2.exports.interceptors = { redirect: require_redirect(), retry: require_retry(), dump: require_dump(), dns: require_dns() }; module2.exports.buildConnector = buildConnector; module2.exports.errors = errors; module2.exports.util = { parseHeaders: util2.parseHeaders, headerNameToString: util2.headerNameToString }; function makeDispatcher(fn) { return (url, opts, handler2) => { if (typeof opts === "function") { handler2 = opts; opts = null; } if (!url || typeof url !== "string" && typeof url !== "object" && !(url instanceof URL)) { throw new InvalidArgumentError("invalid url"); } if (opts != null && typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } if (opts && opts.path != null) { if (typeof opts.path !== "string") { throw new InvalidArgumentError("invalid opts.path"); } let path2 = opts.path; if (!opts.path.startsWith("/")) { path2 = `/${path2}`; } url = new URL(util2.parseOrigin(url).origin + path2); } else { if (!opts) { opts = typeof url === "object" ? url : {}; } url = util2.parseURL(url); } const { agent, dispatcher = getGlobalDispatcher() } = opts; if (agent) { throw new InvalidArgumentError("unsupported opts.agent. Did you mean opts.client?"); } return fn.call(dispatcher, { ...opts, origin: url.origin, path: url.search ? `${url.pathname}${url.search}` : url.pathname, method: opts.method || (opts.body ? "PUT" : "GET") }, handler2); }; } module2.exports.setGlobalDispatcher = setGlobalDispatcher; module2.exports.getGlobalDispatcher = getGlobalDispatcher; var fetchImpl = require_fetch().fetch; module2.exports.fetch = async function fetch(init, options = void 0) { try { return await fetchImpl(init, options); } catch (err) { if (err && typeof err === "object") { Error.captureStackTrace(err); } throw err; } }; module2.exports.Headers = require_headers().Headers; module2.exports.Response = require_response().Response; module2.exports.Request = require_request2().Request; module2.exports.FormData = require_formdata().FormData; module2.exports.File = globalThis.File ?? require("node:buffer").File; module2.exports.FileReader = require_filereader().FileReader; var { setGlobalOrigin, getGlobalOrigin } = require_global(); module2.exports.setGlobalOrigin = setGlobalOrigin; module2.exports.getGlobalOrigin = getGlobalOrigin; var { CacheStorage } = require_cachestorage(); var { kConstruct } = require_symbols4(); module2.exports.caches = new CacheStorage(kConstruct); var { deleteCookie, getCookies, getSetCookies, setCookie } = require_cookies(); module2.exports.deleteCookie = deleteCookie; module2.exports.getCookies = getCookies; module2.exports.getSetCookies = getSetCookies; module2.exports.setCookie = setCookie; var { parseMIMEType, serializeAMimeType } = require_data_url(); module2.exports.parseMIMEType = parseMIMEType; module2.exports.serializeAMimeType = serializeAMimeType; var { CloseEvent, ErrorEvent, MessageEvent } = require_events(); module2.exports.WebSocket = require_websocket().WebSocket; module2.exports.CloseEvent = CloseEvent; module2.exports.ErrorEvent = ErrorEvent; module2.exports.MessageEvent = MessageEvent; module2.exports.request = makeDispatcher(api.request); module2.exports.stream = makeDispatcher(api.stream); module2.exports.pipeline = makeDispatcher(api.pipeline); module2.exports.connect = makeDispatcher(api.connect); module2.exports.upgrade = makeDispatcher(api.upgrade); module2.exports.MockClient = MockClient; module2.exports.MockPool = MockPool; module2.exports.MockAgent = MockAgent; module2.exports.mockErrors = mockErrors; var { EventSource } = require_eventsource(); module2.exports.EventSource = EventSource; } }); // node_modules/fast-content-type-parse/index.js var require_fast_content_type_parse = __commonJS({ "node_modules/fast-content-type-parse/index.js"(exports2, module2) { "use strict"; var NullObject = function NullObject2() { }; NullObject.prototype = /* @__PURE__ */ Object.create(null); var paramRE = /; *([!#$%&'*+.^\w`|~-]+)=("(?:[\v\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\v\u0020-\u00ff])*"|[!#$%&'*+.^\w`|~-]+) */gu; var quotedPairRE = /\\([\v\u0020-\u00ff])/gu; var mediaTypeRE = /^[!#$%&'*+.^\w|~-]+\/[!#$%&'*+.^\w|~-]+$/u; var defaultContentType = { type: "", parameters: new NullObject() }; Object.freeze(defaultContentType.parameters); Object.freeze(defaultContentType); function parse2(header) { if (typeof header !== "string") { throw new TypeError("argument header is required and must be a string"); } let index = header.indexOf(";"); const type = index !== -1 ? header.slice(0, index).trim() : header.trim(); if (mediaTypeRE.test(type) === false) { throw new TypeError("invalid media type"); } const result = { type: type.toLowerCase(), parameters: new NullObject() }; if (index === -1) { return result; } let key; let match; let value; paramRE.lastIndex = index; while (match = paramRE.exec(header)) { if (match.index !== index) { throw new TypeError("invalid parameter format"); } index += match[0].length; key = match[1].toLowerCase(); value = match[2]; if (value[0] === '"') { value = value.slice(1, value.length - 1); quotedPairRE.test(value) && (value = value.replace(quotedPairRE, "$1")); } result.parameters[key] = value; } if (index !== header.length) { throw new TypeError("invalid parameter format"); } return result; } function safeParse2(header) { if (typeof header !== "string") { return defaultContentType; } let index = header.indexOf(";"); const type = index !== -1 ? header.slice(0, index).trim() : header.trim(); if (mediaTypeRE.test(type) === false) { return defaultContentType; } const result = { type: type.toLowerCase(), parameters: new NullObject() }; if (index === -1) { return result; } let key; let match; let value; paramRE.lastIndex = index; while (match = paramRE.exec(header)) { if (match.index !== index) { return defaultContentType; } index += match[0].length; key = match[1].toLowerCase(); value = match[2]; if (value[0] === '"') { value = value.slice(1, value.length - 1); quotedPairRE.test(value) && (value = value.replace(quotedPairRE, "$1")); } result.parameters[key] = value; } if (index !== header.length) { return defaultContentType; } return result; } module2.exports.default = { parse: parse2, safeParse: safeParse2 }; module2.exports.parse = parse2; module2.exports.safeParse = safeParse2; module2.exports.defaultContentType = defaultContentType; } }); // node_modules/semver/semver.js var require_semver = __commonJS({ "node_modules/semver/semver.js"(exports2, module2) { exports2 = module2.exports = SemVer; var debug2; if (typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG)) { debug2 = function() { var args = Array.prototype.slice.call(arguments, 0); args.unshift("SEMVER"); console.log.apply(console, args); }; } else { debug2 = function() { }; } exports2.SEMVER_SPEC_VERSION = "2.0.0"; var MAX_LENGTH = 256; var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991; var MAX_SAFE_COMPONENT_LENGTH = 16; var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6; var re = exports2.re = []; var safeRe = exports2.safeRe = []; var src = exports2.src = []; var t = exports2.tokens = {}; var R = 0; function tok(n) { t[n] = R++; } var LETTERDASHNUMBER = "[a-zA-Z0-9-]"; var safeRegexReplacements = [ ["\\s", 1], ["\\d", MAX_LENGTH], [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH] ]; function makeSafeRe(value) { for (var i2 = 0; i2 < safeRegexReplacements.length; i2++) { var token = safeRegexReplacements[i2][0]; var max = safeRegexReplacements[i2][1]; value = value.split(token + "*").join(token + "{0," + max + "}").split(token + "+").join(token + "{1," + max + "}"); } return value; } tok("NUMERICIDENTIFIER"); src[t.NUMERICIDENTIFIER] = "0|[1-9]\\d*"; tok("NUMERICIDENTIFIERLOOSE"); src[t.NUMERICIDENTIFIERLOOSE] = "\\d+"; tok("NONNUMERICIDENTIFIER"); src[t.NONNUMERICIDENTIFIER] = "\\d*[a-zA-Z-]" + LETTERDASHNUMBER + "*"; tok("MAINVERSION"); src[t.MAINVERSION] = "(" + src[t.NUMERICIDENTIFIER] + ")\\.(" + src[t.NUMERICIDENTIFIER] + ")\\.(" + src[t.NUMERICIDENTIFIER] + ")"; tok("MAINVERSIONLOOSE"); src[t.MAINVERSIONLOOSE] = "(" + src[t.NUMERICIDENTIFIERLOOSE] + ")\\.(" + src[t.NUMERICIDENTIFIERLOOSE] + ")\\.(" + src[t.NUMERICIDENTIFIERLOOSE] + ")"; tok("PRERELEASEIDENTIFIER"); src[t.PRERELEASEIDENTIFIER] = "(?:" + src[t.NUMERICIDENTIFIER] + "|" + src[t.NONNUMERICIDENTIFIER] + ")"; tok("PRERELEASEIDENTIFIERLOOSE"); src[t.PRERELEASEIDENTIFIERLOOSE] = "(?:" + src[t.NUMERICIDENTIFIERLOOSE] + "|" + src[t.NONNUMERICIDENTIFIER] + ")"; tok("PRERELEASE"); src[t.PRERELEASE] = "(?:-(" + src[t.PRERELEASEIDENTIFIER] + "(?:\\." + src[t.PRERELEASEIDENTIFIER] + ")*))"; tok("PRERELEASELOOSE"); src[t.PRERELEASELOOSE] = "(?:-?(" + src[t.PRERELEASEIDENTIFIERLOOSE] + "(?:\\." + src[t.PRERELEASEIDENTIFIERLOOSE] + ")*))"; tok("BUILDIDENTIFIER"); src[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + "+"; tok("BUILD"); src[t.BUILD] = "(?:\\+(" + src[t.BUILDIDENTIFIER] + "(?:\\." + src[t.BUILDIDENTIFIER] + ")*))"; tok("FULL"); tok("FULLPLAIN"); src[t.FULLPLAIN] = "v?" + src[t.MAINVERSION] + src[t.PRERELEASE] + "?" + src[t.BUILD] + "?"; src[t.FULL] = "^" + src[t.FULLPLAIN] + "$"; tok("LOOSEPLAIN"); src[t.LOOSEPLAIN] = "[v=\\s]*" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + "?" + src[t.BUILD] + "?"; tok("LOOSE"); src[t.LOOSE] = "^" + src[t.LOOSEPLAIN] + "$"; tok("GTLT"); src[t.GTLT] = "((?:<|>)?=?)"; tok("XRANGEIDENTIFIERLOOSE"); src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + "|x|X|\\*"; tok("XRANGEIDENTIFIER"); src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + "|x|X|\\*"; tok("XRANGEPLAIN"); src[t.XRANGEPLAIN] = "[v=\\s]*(" + src[t.XRANGEIDENTIFIER] + ")(?:\\.(" + src[t.XRANGEIDENTIFIER] + ")(?:\\.(" + src[t.XRANGEIDENTIFIER] + ")(?:" + src[t.PRERELEASE] + ")?" + src[t.BUILD] + "?)?)?"; tok("XRANGEPLAINLOOSE"); src[t.XRANGEPLAINLOOSE] = "[v=\\s]*(" + src[t.XRANGEIDENTIFIERLOOSE] + ")(?:\\.(" + src[t.XRANGEIDENTIFIERLOOSE] + ")(?:\\.(" + src[t.XRANGEIDENTIFIERLOOSE] + ")(?:" + src[t.PRERELEASELOOSE] + ")?" + src[t.BUILD] + "?)?)?"; tok("XRANGE"); src[t.XRANGE] = "^" + src[t.GTLT] + "\\s*" + src[t.XRANGEPLAIN] + "$"; tok("XRANGELOOSE"); src[t.XRANGELOOSE] = "^" + src[t.GTLT] + "\\s*" + src[t.XRANGEPLAINLOOSE] + "$"; tok("COERCE"); src[t.COERCE] = "(^|[^\\d])(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "})(?:\\.(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "}))?(?:\\.(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "}))?(?:$|[^\\d])"; tok("COERCERTL"); re[t.COERCERTL] = new RegExp(src[t.COERCE], "g"); safeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), "g"); tok("LONETILDE"); src[t.LONETILDE] = "(?:~>?)"; tok("TILDETRIM"); src[t.TILDETRIM] = "(\\s*)" + src[t.LONETILDE] + "\\s+"; re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], "g"); safeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), "g"); var tildeTrimReplace = "$1~"; tok("TILDE"); src[t.TILDE] = "^" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + "$"; tok("TILDELOOSE"); src[t.TILDELOOSE] = "^" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + "$"; tok("LONECARET"); src[t.LONECARET] = "(?:\\^)"; tok("CARETTRIM"); src[t.CARETTRIM] = "(\\s*)" + src[t.LONECARET] + "\\s+"; re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], "g"); safeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), "g"); var caretTrimReplace = "$1^"; tok("CARET"); src[t.CARET] = "^" + src[t.LONECARET] + src[t.XRANGEPLAIN] + "$"; tok("CARETLOOSE"); src[t.CARETLOOSE] = "^" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + "$"; tok("COMPARATORLOOSE"); src[t.COMPARATORLOOSE] = "^" + src[t.GTLT] + "\\s*(" + src[t.LOOSEPLAIN] + ")$|^$"; tok("COMPARATOR"); src[t.COMPARATOR] = "^" + src[t.GTLT] + "\\s*(" + src[t.FULLPLAIN] + ")$|^$"; tok("COMPARATORTRIM"); src[t.COMPARATORTRIM] = "(\\s*)" + src[t.GTLT] + "\\s*(" + src[t.LOOSEPLAIN] + "|" + src[t.XRANGEPLAIN] + ")"; re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], "g"); safeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), "g"); var comparatorTrimReplace = "$1$2$3"; tok("HYPHENRANGE"); src[t.HYPHENRANGE] = "^\\s*(" + src[t.XRANGEPLAIN] + ")\\s+-\\s+(" + src[t.XRANGEPLAIN] + ")\\s*$"; tok("HYPHENRANGELOOSE"); src[t.HYPHENRANGELOOSE] = "^\\s*(" + src[t.XRANGEPLAINLOOSE] + ")\\s+-\\s+(" + src[t.XRANGEPLAINLOOSE] + ")\\s*$"; tok("STAR"); src[t.STAR] = "(<|>)?=?\\s*\\*"; for (i = 0; i < R; i++) { debug2(i, src[i]); if (!re[i]) { re[i] = new RegExp(src[i]); safeRe[i] = new RegExp(makeSafeRe(src[i])); } } var i; exports2.parse = parse2; function parse2(version, options) { if (!options || typeof options !== "object") { options = { loose: !!options, includePrerelease: false }; } if (version instanceof SemVer) { return version; } if (typeof version !== "string") { return null; } if (version.length > MAX_LENGTH) { return null; } var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]; if (!r.test(version)) { return null; } try { return new SemVer(version, options); } catch (er) { return null; } } exports2.valid = valid2; function valid2(version, options) { var v = parse2(version, options); return v ? v.version : null; } exports2.clean = clean2; function clean2(version, options) { var s = parse2(version.trim().replace(/^[=v]+/, ""), options); return s ? s.version : null; } exports2.SemVer = SemVer; function SemVer(version, options) { if (!options || typeof options !== "object") { options = { loose: !!options, includePrerelease: false }; } if (version instanceof SemVer) { if (version.loose === options.loose) { return version; } else { version = version.version; } } else if (typeof version !== "string") { throw new TypeError("Invalid Version: " + version); } if (version.length > MAX_LENGTH) { throw new TypeError("version is longer than " + MAX_LENGTH + " characters"); } if (!(this instanceof SemVer)) { return new SemVer(version, options); } debug2("SemVer", version, options); this.options = options; this.loose = !!options.loose; var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]); if (!m) { throw new TypeError("Invalid Version: " + version); } this.raw = version; this.major = +m[1]; this.minor = +m[2]; this.patch = +m[3]; if (this.major > MAX_SAFE_INTEGER || this.major < 0) { throw new TypeError("Invalid major version"); } if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { throw new TypeError("Invalid minor version"); } if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { throw new TypeError("Invalid patch version"); } if (!m[4]) { this.prerelease = []; } else { this.prerelease = m[4].split(".").map(function(id) { if (/^[0-9]+$/.test(id)) { var num = +id; if (num >= 0 && num < MAX_SAFE_INTEGER) { return num; } } return id; }); } this.build = m[5] ? m[5].split(".") : []; this.format(); } SemVer.prototype.format = function() { this.version = this.major + "." + this.minor + "." + this.patch; if (this.prerelease.length) { this.version += "-" + this.prerelease.join("."); } return this.version; }; SemVer.prototype.toString = function() { return this.version; }; SemVer.prototype.compare = function(other) { debug2("SemVer.compare", this.version, this.options, other); if (!(other instanceof SemVer)) { other = new SemVer(other, this.options); } return this.compareMain(other) || this.comparePre(other); }; SemVer.prototype.compareMain = function(other) { if (!(other instanceof SemVer)) { other = new SemVer(other, this.options); } return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); }; SemVer.prototype.comparePre = function(other) { if (!(other instanceof SemVer)) { other = new SemVer(other, this.options); } if (this.prerelease.length && !other.prerelease.length) { return -1; } else if (!this.prerelease.length && other.prerelease.length) { return 1; } else if (!this.prerelease.length && !other.prerelease.length) { return 0; } var i2 = 0; do { var a = this.prerelease[i2]; var b = other.prerelease[i2]; debug2("prerelease compare", i2, a, b); if (a === void 0 && b === void 0) { return 0; } else if (b === void 0) { return 1; } else if (a === void 0) { return -1; } else if (a === b) { continue; } else { return compareIdentifiers(a, b); } } while (++i2); }; SemVer.prototype.compareBuild = function(other) { if (!(other instanceof SemVer)) { other = new SemVer(other, this.options); } var i2 = 0; do { var a = this.build[i2]; var b = other.build[i2]; debug2("prerelease compare", i2, a, b); if (a === void 0 && b === void 0) { return 0; } else if (b === void 0) { return 1; } else if (a === void 0) { return -1; } else if (a === b) { continue; } else { return compareIdentifiers(a, b); } } while (++i2); }; SemVer.prototype.inc = function(release, identifier) { switch (release) { case "premajor": this.prerelease.length = 0; this.patch = 0; this.minor = 0; this.major++; this.inc("pre", identifier); break; case "preminor": this.prerelease.length = 0; this.patch = 0; this.minor++; this.inc("pre", identifier); break; case "prepatch": this.prerelease.length = 0; this.inc("patch", identifier); this.inc("pre", identifier); break; // If the input is a non-prerelease version, this acts the same as // prepatch. case "prerelease": if (this.prerelease.length === 0) { this.inc("patch", identifier); } this.inc("pre", identifier); break; case "major": if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { this.major++; } this.minor = 0; this.patch = 0; this.prerelease = []; break; case "minor": if (this.patch !== 0 || this.prerelease.length === 0) { this.minor++; } this.patch = 0; this.prerelease = []; break; case "patch": if (this.prerelease.length === 0) { this.patch++; } this.prerelease = []; break; // This probably shouldn't be used publicly. // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. case "pre": if (this.prerelease.length === 0) { this.prerelease = [0]; } else { var i2 = this.prerelease.length; while (--i2 >= 0) { if (typeof this.prerelease[i2] === "number") { this.prerelease[i2]++; i2 = -2; } } if (i2 === -1) { this.prerelease.push(0); } } if (identifier) { if (this.prerelease[0] === identifier) { if (isNaN(this.prerelease[1])) { this.prerelease = [identifier, 0]; } } else { this.prerelease = [identifier, 0]; } } break; default: throw new Error("invalid increment argument: " + release); } this.format(); this.raw = this.version; return this; }; exports2.inc = inc; function inc(version, release, loose, identifier) { if (typeof loose === "string") { identifier = loose; loose = void 0; } try { return new SemVer(version, loose).inc(release, identifier).version; } catch (er) { return null; } } exports2.diff = diff; function diff(version1, version2) { if (eq(version1, version2)) { return null; } else { var v1 = parse2(version1); var v2 = parse2(version2); var prefix = ""; if (v1.prerelease.length || v2.prerelease.length) { prefix = "pre"; var defaultResult = "prerelease"; } for (var key in v1) { if (key === "major" || key === "minor" || key === "patch") { if (v1[key] !== v2[key]) { return prefix + key; } } } return defaultResult; } } exports2.compareIdentifiers = compareIdentifiers; var numeric = /^[0-9]+$/; function compareIdentifiers(a, b) { var anum = numeric.test(a); var bnum = numeric.test(b); if (anum && bnum) { a = +a; b = +b; } return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; } exports2.rcompareIdentifiers = rcompareIdentifiers; function rcompareIdentifiers(a, b) { return compareIdentifiers(b, a); } exports2.major = major; function major(a, loose) { return new SemVer(a, loose).major; } exports2.minor = minor; function minor(a, loose) { return new SemVer(a, loose).minor; } exports2.patch = patch; function patch(a, loose) { return new SemVer(a, loose).patch; } exports2.compare = compare; function compare(a, b, loose) { return new SemVer(a, loose).compare(new SemVer(b, loose)); } exports2.compareLoose = compareLoose; function compareLoose(a, b) { return compare(a, b, true); } exports2.compareBuild = compareBuild; function compareBuild(a, b, loose) { var versionA = new SemVer(a, loose); var versionB = new SemVer(b, loose); return versionA.compare(versionB) || versionA.compareBuild(versionB); } exports2.rcompare = rcompare2; function rcompare2(a, b, loose) { return compare(b, a, loose); } exports2.sort = sort; function sort(list, loose) { return list.sort(function(a, b) { return exports2.compareBuild(a, b, loose); }); } exports2.rsort = rsort; function rsort(list, loose) { return list.sort(function(a, b) { return exports2.compareBuild(b, a, loose); }); } exports2.gt = gt2; function gt2(a, b, loose) { return compare(a, b, loose) > 0; } exports2.lt = lt; function lt(a, b, loose) { return compare(a, b, loose) < 0; } exports2.eq = eq; function eq(a, b, loose) { return compare(a, b, loose) === 0; } exports2.neq = neq; function neq(a, b, loose) { return compare(a, b, loose) !== 0; } exports2.gte = gte; function gte(a, b, loose) { return compare(a, b, loose) >= 0; } exports2.lte = lte; function lte(a, b, loose) { return compare(a, b, loose) <= 0; } exports2.cmp = cmp; function cmp(a, op, b, loose) { switch (op) { case "===": if (typeof a === "object") a = a.version; if (typeof b === "object") b = b.version; return a === b; case "!==": if (typeof a === "object") a = a.version; if (typeof b === "object") b = b.version; return a !== b; case "": case "=": case "==": return eq(a, b, loose); case "!=": return neq(a, b, loose); case ">": return gt2(a, b, loose); case ">=": return gte(a, b, loose); case "<": return lt(a, b, loose); case "<=": return lte(a, b, loose); default: throw new TypeError("Invalid operator: " + op); } } exports2.Comparator = Comparator; function Comparator(comp, options) { if (!options || typeof options !== "object") { options = { loose: !!options, includePrerelease: false }; } if (comp instanceof Comparator) { if (comp.loose === !!options.loose) { return comp; } else { comp = comp.value; } } if (!(this instanceof Comparator)) { return new Comparator(comp, options); } comp = comp.trim().split(/\s+/).join(" "); debug2("comparator", comp, options); this.options = options; this.loose = !!options.loose; this.parse(comp); if (this.semver === ANY) { this.value = ""; } else { this.value = this.operator + this.semver.version; } debug2("comp", this); } var ANY = {}; Comparator.prototype.parse = function(comp) { var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]; var m = comp.match(r); if (!m) { throw new TypeError("Invalid comparator: " + comp); } this.operator = m[1] !== void 0 ? m[1] : ""; if (this.operator === "=") { this.operator = ""; } if (!m[2]) { this.semver = ANY; } else { this.semver = new SemVer(m[2], this.options.loose); } }; Comparator.prototype.toString = function() { return this.value; }; Comparator.prototype.test = function(version) { debug2("Comparator.test", version, this.options.loose); if (this.semver === ANY || version === ANY) { return true; } if (typeof version === "string") { try { version = new SemVer(version, this.options); } catch (er) { return false; } } return cmp(version, this.operator, this.semver, this.options); }; Comparator.prototype.intersects = function(comp, options) { if (!(comp instanceof Comparator)) { throw new TypeError("a Comparator is required"); } if (!options || typeof options !== "object") { options = { loose: !!options, includePrerelease: false }; } var rangeTmp; if (this.operator === "") { if (this.value === "") { return true; } rangeTmp = new Range(comp.value, options); return satisfies3(this.value, rangeTmp, options); } else if (comp.operator === "") { if (comp.value === "") { return true; } rangeTmp = new Range(this.value, options); return satisfies3(comp.semver, rangeTmp, options); } var sameDirectionIncreasing = (this.operator === ">=" || this.operator === ">") && (comp.operator === ">=" || comp.operator === ">"); var sameDirectionDecreasing = (this.operator === "<=" || this.operator === "<") && (comp.operator === "<=" || comp.operator === "<"); var sameSemVer = this.semver.version === comp.semver.version; var differentDirectionsInclusive = (this.operator === ">=" || this.operator === "<=") && (comp.operator === ">=" || comp.operator === "<="); var oppositeDirectionsLessThan = cmp(this.semver, "<", comp.semver, options) && ((this.operator === ">=" || this.operator === ">") && (comp.operator === "<=" || comp.operator === "<")); var oppositeDirectionsGreaterThan = cmp(this.semver, ">", comp.semver, options) && ((this.operator === "<=" || this.operator === "<") && (comp.operator === ">=" || comp.operator === ">")); return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; }; exports2.Range = Range; function Range(range, options) { if (!options || typeof options !== "object") { options = { loose: !!options, includePrerelease: false }; } if (range instanceof Range) { if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { return range; } else { return new Range(range.raw, options); } } if (range instanceof Comparator) { return new Range(range.value, options); } if (!(this instanceof Range)) { return new Range(range, options); } this.options = options; this.loose = !!options.loose; this.includePrerelease = !!options.includePrerelease; this.raw = range.trim().split(/\s+/).join(" "); this.set = this.raw.split("||").map(function(range2) { return this.parseRange(range2.trim()); }, this).filter(function(c) { return c.length; }); if (!this.set.length) { throw new TypeError("Invalid SemVer Range: " + this.raw); } this.format(); } Range.prototype.format = function() { this.range = this.set.map(function(comps) { return comps.join(" ").trim(); }).join("||").trim(); return this.range; }; Range.prototype.toString = function() { return this.range; }; Range.prototype.parseRange = function(range) { var loose = this.options.loose; var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]; range = range.replace(hr, hyphenReplace); debug2("hyphen replace", range); range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace); debug2("comparator trim", range, safeRe[t.COMPARATORTRIM]); range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace); range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace); range = range.split(/\s+/).join(" "); var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]; var set = range.split(" ").map(function(comp) { return parseComparator(comp, this.options); }, this).join(" ").split(/\s+/); if (this.options.loose) { set = set.filter(function(comp) { return !!comp.match(compRe); }); } set = set.map(function(comp) { return new Comparator(comp, this.options); }, this); return set; }; Range.prototype.intersects = function(range, options) { if (!(range instanceof Range)) { throw new TypeError("a Range is required"); } return this.set.some(function(thisComparators) { return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) { return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) { return rangeComparators.every(function(rangeComparator) { return thisComparator.intersects(rangeComparator, options); }); }); }); }); }; function isSatisfiable(comparators, options) { var result = true; var remainingComparators = comparators.slice(); var testComparator = remainingComparators.pop(); while (result && remainingComparators.length) { result = remainingComparators.every(function(otherComparator) { return testComparator.intersects(otherComparator, options); }); testComparator = remainingComparators.pop(); } return result; } exports2.toComparators = toComparators; function toComparators(range, options) { return new Range(range, options).set.map(function(comp) { return comp.map(function(c) { return c.value; }).join(" ").trim().split(" "); }); } function parseComparator(comp, options) { debug2("comp", comp, options); comp = replaceCarets(comp, options); debug2("caret", comp); comp = replaceTildes(comp, options); debug2("tildes", comp); comp = replaceXRanges(comp, options); debug2("xrange", comp); comp = replaceStars(comp, options); debug2("stars", comp); return comp; } function isX(id) { return !id || id.toLowerCase() === "x" || id === "*"; } function replaceTildes(comp, options) { return comp.trim().split(/\s+/).map(function(comp2) { return replaceTilde(comp2, options); }).join(" "); } function replaceTilde(comp, options) { var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]; return comp.replace(r, function(_, M, m, p, pr) { debug2("tilde", comp, _, M, m, p, pr); var ret; if (isX(M)) { ret = ""; } else if (isX(m)) { ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0"; } else if (isX(p)) { ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0"; } else if (pr) { debug2("replaceTilde pr", pr); ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + (+m + 1) + ".0"; } else { ret = ">=" + M + "." + m + "." + p + " <" + M + "." + (+m + 1) + ".0"; } debug2("tilde return", ret); return ret; }); } function replaceCarets(comp, options) { return comp.trim().split(/\s+/).map(function(comp2) { return replaceCaret(comp2, options); }).join(" "); } function replaceCaret(comp, options) { debug2("caret", comp, options); var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]; return comp.replace(r, function(_, M, m, p, pr) { debug2("caret", comp, _, M, m, p, pr); var ret; if (isX(M)) { ret = ""; } else if (isX(m)) { ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0"; } else if (isX(p)) { if (M === "0") { ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0"; } else { ret = ">=" + M + "." + m + ".0 <" + (+M + 1) + ".0.0"; } } else if (pr) { debug2("replaceCaret pr", pr); if (M === "0") { if (m === "0") { ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + m + "." + (+p + 1); } else { ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + (+m + 1) + ".0"; } } else { ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + (+M + 1) + ".0.0"; } } else { debug2("no pr"); if (M === "0") { if (m === "0") { ret = ">=" + M + "." + m + "." + p + " <" + M + "." + m + "." + (+p + 1); } else { ret = ">=" + M + "." + m + "." + p + " <" + M + "." + (+m + 1) + ".0"; } } else { ret = ">=" + M + "." + m + "." + p + " <" + (+M + 1) + ".0.0"; } } debug2("caret return", ret); return ret; }); } function replaceXRanges(comp, options) { debug2("replaceXRanges", comp, options); return comp.split(/\s+/).map(function(comp2) { return replaceXRange(comp2, options); }).join(" "); } function replaceXRange(comp, options) { comp = comp.trim(); var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]; return comp.replace(r, function(ret, gtlt, M, m, p, pr) { debug2("xRange", comp, ret, gtlt, M, m, p, pr); var xM = isX(M); var xm = xM || isX(m); var xp = xm || isX(p); var anyX = xp; if (gtlt === "=" && anyX) { gtlt = ""; } pr = options.includePrerelease ? "-0" : ""; if (xM) { if (gtlt === ">" || gtlt === "<") { ret = "<0.0.0-0"; } else { ret = "*"; } } else if (gtlt && anyX) { if (xm) { m = 0; } p = 0; if (gtlt === ">") { gtlt = ">="; if (xm) { M = +M + 1; m = 0; p = 0; } else { m = +m + 1; p = 0; } } else if (gtlt === "<=") { gtlt = "<"; if (xm) { M = +M + 1; } else { m = +m + 1; } } ret = gtlt + M + "." + m + "." + p + pr; } else if (xm) { ret = ">=" + M + ".0.0" + pr + " <" + (+M + 1) + ".0.0" + pr; } else if (xp) { ret = ">=" + M + "." + m + ".0" + pr + " <" + M + "." + (+m + 1) + ".0" + pr; } debug2("xRange return", ret); return ret; }); } function replaceStars(comp, options) { debug2("replaceStars", comp, options); return comp.trim().replace(safeRe[t.STAR], ""); } function hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) { if (isX(fM)) { from = ""; } else if (isX(fm)) { from = ">=" + fM + ".0.0"; } else if (isX(fp)) { from = ">=" + fM + "." + fm + ".0"; } else { from = ">=" + from; } if (isX(tM)) { to = ""; } else if (isX(tm)) { to = "<" + (+tM + 1) + ".0.0"; } else if (isX(tp)) { to = "<" + tM + "." + (+tm + 1) + ".0"; } else if (tpr) { to = "<=" + tM + "." + tm + "." + tp + "-" + tpr; } else { to = "<=" + to; } return (from + " " + to).trim(); } Range.prototype.test = function(version) { if (!version) { return false; } if (typeof version === "string") { try { version = new SemVer(version, this.options); } catch (er) { return false; } } for (var i2 = 0; i2 < this.set.length; i2++) { if (testSet(this.set[i2], version, this.options)) { return true; } } return false; }; function testSet(set, version, options) { for (var i2 = 0; i2 < set.length; i2++) { if (!set[i2].test(version)) { return false; } } if (version.prerelease.length && !options.includePrerelease) { for (i2 = 0; i2 < set.length; i2++) { debug2(set[i2].semver); if (set[i2].semver === ANY) { continue; } if (set[i2].semver.prerelease.length > 0) { var allowed = set[i2].semver; if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { return true; } } } return false; } return true; } exports2.satisfies = satisfies3; function satisfies3(version, range, options) { try { range = new Range(range, options); } catch (er) { return false; } return range.test(version); } exports2.maxSatisfying = maxSatisfying; function maxSatisfying(versions, range, options) { var max = null; var maxSV = null; try { var rangeObj = new Range(range, options); } catch (er) { return null; } versions.forEach(function(v) { if (rangeObj.test(v)) { if (!max || maxSV.compare(v) === -1) { max = v; maxSV = new SemVer(max, options); } } }); return max; } exports2.minSatisfying = minSatisfying; function minSatisfying(versions, range, options) { var min = null; var minSV = null; try { var rangeObj = new Range(range, options); } catch (er) { return null; } versions.forEach(function(v) { if (rangeObj.test(v)) { if (!min || minSV.compare(v) === 1) { min = v; minSV = new SemVer(min, options); } } }); return min; } exports2.minVersion = minVersion; function minVersion(range, loose) { range = new Range(range, loose); var minver = new SemVer("0.0.0"); if (range.test(minver)) { return minver; } minver = new SemVer("0.0.0-0"); if (range.test(minver)) { return minver; } minver = null; for (var i2 = 0; i2 < range.set.length; ++i2) { var comparators = range.set[i2]; comparators.forEach(function(comparator) { var compver = new SemVer(comparator.semver.version); switch (comparator.operator) { case ">": if (compver.prerelease.length === 0) { compver.patch++; } else { compver.prerelease.push(0); } compver.raw = compver.format(); /* fallthrough */ case "": case ">=": if (!minver || gt2(minver, compver)) { minver = compver; } break; case "<": case "<=": break; /* istanbul ignore next */ default: throw new Error("Unexpected operation: " + comparator.operator); } }); } if (minver && range.test(minver)) { return minver; } return null; } exports2.validRange = validRange; function validRange(range, options) { try { return new Range(range, options).range || "*"; } catch (er) { return null; } } exports2.ltr = ltr; function ltr(version, range, options) { return outside(version, range, "<", options); } exports2.gtr = gtr; function gtr(version, range, options) { return outside(version, range, ">", options); } exports2.outside = outside; function outside(version, range, hilo, options) { version = new SemVer(version, options); range = new Range(range, options); var gtfn, ltefn, ltfn, comp, ecomp; switch (hilo) { case ">": gtfn = gt2; ltefn = lte; ltfn = lt; comp = ">"; ecomp = ">="; break; case "<": gtfn = lt; ltefn = gte; ltfn = gt2; comp = "<"; ecomp = "<="; break; default: throw new TypeError('Must provide a hilo val of "<" or ">"'); } if (satisfies3(version, range, options)) { return false; } for (var i2 = 0; i2 < range.set.length; ++i2) { var comparators = range.set[i2]; var high = null; var low = null; comparators.forEach(function(comparator) { if (comparator.semver === ANY) { comparator = new Comparator(">=0.0.0"); } high = high || comparator; low = low || comparator; if (gtfn(comparator.semver, high.semver, options)) { high = comparator; } else if (ltfn(comparator.semver, low.semver, options)) { low = comparator; } }); if (high.operator === comp || high.operator === ecomp) { return false; } if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) { return false; } else if (low.operator === ecomp && ltfn(version, low.semver)) { return false; } } return true; } exports2.prerelease = prerelease; function prerelease(version, options) { var parsed = parse2(version, options); return parsed && parsed.prerelease.length ? parsed.prerelease : null; } exports2.intersects = intersects; function intersects(r1, r2, options) { r1 = new Range(r1, options); r2 = new Range(r2, options); return r1.intersects(r2); } exports2.coerce = coerce; function coerce(version, options) { if (version instanceof SemVer) { return version; } if (typeof version === "number") { version = String(version); } if (typeof version !== "string") { return null; } options = options || {}; var match = null; if (!options.rtl) { match = version.match(safeRe[t.COERCE]); } else { var next; while ((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)) { if (!match || next.index + next[0].length !== match.index + match[0].length) { match = next; } safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length; } safeRe[t.COERCERTL].lastIndex = -1; } if (match === null) { return null; } return parse2(match[2] + "." + (match[3] || "0") + "." + (match[4] || "0"), options); } } }); // node_modules/@actions/tool-cache/node_modules/semver/internal/constants.js var require_constants6 = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/internal/constants.js"(exports2, module2) { "use strict"; var SEMVER_SPEC_VERSION = "2.0.0"; var MAX_LENGTH = 256; var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991; var MAX_SAFE_COMPONENT_LENGTH = 16; var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6; var RELEASE_TYPES = [ "major", "premajor", "minor", "preminor", "patch", "prepatch", "prerelease" ]; module2.exports = { MAX_LENGTH, MAX_SAFE_COMPONENT_LENGTH, MAX_SAFE_BUILD_LENGTH, MAX_SAFE_INTEGER, RELEASE_TYPES, SEMVER_SPEC_VERSION, FLAG_INCLUDE_PRERELEASE: 1, FLAG_LOOSE: 2 }; } }); // node_modules/@actions/tool-cache/node_modules/semver/internal/debug.js var require_debug = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/internal/debug.js"(exports2, module2) { "use strict"; var debug2 = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => { }; module2.exports = debug2; } }); // node_modules/@actions/tool-cache/node_modules/semver/internal/re.js var require_re = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/internal/re.js"(exports2, module2) { "use strict"; var { MAX_SAFE_COMPONENT_LENGTH, MAX_SAFE_BUILD_LENGTH, MAX_LENGTH } = require_constants6(); var debug2 = require_debug(); exports2 = module2.exports = {}; var re = exports2.re = []; var safeRe = exports2.safeRe = []; var src = exports2.src = []; var safeSrc = exports2.safeSrc = []; var t = exports2.t = {}; var R = 0; var LETTERDASHNUMBER = "[a-zA-Z0-9-]"; var safeRegexReplacements = [ ["\\s", 1], ["\\d", MAX_LENGTH], [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH] ]; var makeSafeRegex = (value) => { for (const [token, max] of safeRegexReplacements) { value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`); } return value; }; var createToken = (name, value, isGlobal) => { const safe = makeSafeRegex(value); const index = R++; debug2(name, index, value); t[name] = index; src[index] = value; safeSrc[index] = safe; re[index] = new RegExp(value, isGlobal ? "g" : void 0); safeRe[index] = new RegExp(safe, isGlobal ? "g" : void 0); }; createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*"); createToken("NUMERICIDENTIFIERLOOSE", "\\d+"); createToken("NONNUMERICIDENTIFIER", `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`); createToken("MAINVERSION", `(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})`); createToken("MAINVERSIONLOOSE", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`); createToken("PRERELEASEIDENTIFIER", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIER]})`); createToken("PRERELEASEIDENTIFIERLOOSE", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIERLOOSE]})`); createToken("PRERELEASE", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); createToken("PRERELEASELOOSE", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); createToken("BUILDIDENTIFIER", `${LETTERDASHNUMBER}+`); createToken("BUILD", `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); createToken("FULLPLAIN", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`); createToken("FULL", `^${src[t.FULLPLAIN]}$`); createToken("LOOSEPLAIN", `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`); createToken("LOOSE", `^${src[t.LOOSEPLAIN]}$`); createToken("GTLT", "((?:<|>)?=?)"); createToken("XRANGEIDENTIFIERLOOSE", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); createToken("XRANGEIDENTIFIER", `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); createToken("XRANGEPLAIN", `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`); createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`); createToken("XRANGE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); createToken("XRANGELOOSE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); createToken("COERCEPLAIN", `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`); createToken("COERCE", `${src[t.COERCEPLAIN]}(?:$|[^\\d])`); createToken("COERCEFULL", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\d])`); createToken("COERCERTL", src[t.COERCE], true); createToken("COERCERTLFULL", src[t.COERCEFULL], true); createToken("LONETILDE", "(?:~>?)"); createToken("TILDETRIM", `(\\s*)${src[t.LONETILDE]}\\s+`, true); exports2.tildeTrimReplace = "$1~"; createToken("TILDE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); createToken("TILDELOOSE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); createToken("LONECARET", "(?:\\^)"); createToken("CARETTRIM", `(\\s*)${src[t.LONECARET]}\\s+`, true); exports2.caretTrimReplace = "$1^"; createToken("CARET", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); createToken("CARETLOOSE", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); createToken("COMPARATORLOOSE", `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); createToken("COMPARATOR", `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); createToken("COMPARATORTRIM", `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); exports2.comparatorTrimReplace = "$1$2$3"; createToken("HYPHENRANGE", `^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`); createToken("HYPHENRANGELOOSE", `^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`); createToken("STAR", "(<|>)?=?\\s*\\*"); createToken("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$"); createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$"); } }); // node_modules/@actions/tool-cache/node_modules/semver/internal/parse-options.js var require_parse_options = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/internal/parse-options.js"(exports2, module2) { "use strict"; var looseOption = Object.freeze({ loose: true }); var emptyOpts = Object.freeze({}); var parseOptions = (options) => { if (!options) { return emptyOpts; } if (typeof options !== "object") { return looseOption; } return options; }; module2.exports = parseOptions; } }); // node_modules/@actions/tool-cache/node_modules/semver/internal/identifiers.js var require_identifiers = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/internal/identifiers.js"(exports2, module2) { "use strict"; var numeric = /^[0-9]+$/; var compareIdentifiers = (a, b) => { if (typeof a === "number" && typeof b === "number") { return a === b ? 0 : a < b ? -1 : 1; } const anum = numeric.test(a); const bnum = numeric.test(b); if (anum && bnum) { a = +a; b = +b; } return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; }; var rcompareIdentifiers = (a, b) => compareIdentifiers(b, a); module2.exports = { compareIdentifiers, rcompareIdentifiers }; } }); // node_modules/@actions/tool-cache/node_modules/semver/classes/semver.js var require_semver2 = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/classes/semver.js"(exports2, module2) { "use strict"; var debug2 = require_debug(); var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants6(); var { safeRe: re, t } = require_re(); var parseOptions = require_parse_options(); var { compareIdentifiers } = require_identifiers(); var SemVer = class _SemVer { constructor(version, options) { options = parseOptions(options); if (version instanceof _SemVer) { if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) { return version; } else { version = version.version; } } else if (typeof version !== "string") { throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`); } if (version.length > MAX_LENGTH) { throw new TypeError( `version is longer than ${MAX_LENGTH} characters` ); } debug2("SemVer", version, options); this.options = options; this.loose = !!options.loose; this.includePrerelease = !!options.includePrerelease; const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); if (!m) { throw new TypeError(`Invalid Version: ${version}`); } this.raw = version; this.major = +m[1]; this.minor = +m[2]; this.patch = +m[3]; if (this.major > MAX_SAFE_INTEGER || this.major < 0) { throw new TypeError("Invalid major version"); } if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { throw new TypeError("Invalid minor version"); } if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { throw new TypeError("Invalid patch version"); } if (!m[4]) { this.prerelease = []; } else { this.prerelease = m[4].split(".").map((id) => { if (/^[0-9]+$/.test(id)) { const num = +id; if (num >= 0 && num < MAX_SAFE_INTEGER) { return num; } } return id; }); } this.build = m[5] ? m[5].split(".") : []; this.format(); } format() { this.version = `${this.major}.${this.minor}.${this.patch}`; if (this.prerelease.length) { this.version += `-${this.prerelease.join(".")}`; } return this.version; } toString() { return this.version; } compare(other) { debug2("SemVer.compare", this.version, this.options, other); if (!(other instanceof _SemVer)) { if (typeof other === "string" && other === this.version) { return 0; } other = new _SemVer(other, this.options); } if (other.version === this.version) { return 0; } return this.compareMain(other) || this.comparePre(other); } compareMain(other) { if (!(other instanceof _SemVer)) { other = new _SemVer(other, this.options); } if (this.major < other.major) { return -1; } if (this.major > other.major) { return 1; } if (this.minor < other.minor) { return -1; } if (this.minor > other.minor) { return 1; } if (this.patch < other.patch) { return -1; } if (this.patch > other.patch) { return 1; } return 0; } comparePre(other) { if (!(other instanceof _SemVer)) { other = new _SemVer(other, this.options); } if (this.prerelease.length && !other.prerelease.length) { return -1; } else if (!this.prerelease.length && other.prerelease.length) { return 1; } else if (!this.prerelease.length && !other.prerelease.length) { return 0; } let i = 0; do { const a = this.prerelease[i]; const b = other.prerelease[i]; debug2("prerelease compare", i, a, b); if (a === void 0 && b === void 0) { return 0; } else if (b === void 0) { return 1; } else if (a === void 0) { return -1; } else if (a === b) { continue; } else { return compareIdentifiers(a, b); } } while (++i); } compareBuild(other) { if (!(other instanceof _SemVer)) { other = new _SemVer(other, this.options); } let i = 0; do { const a = this.build[i]; const b = other.build[i]; debug2("build compare", i, a, b); if (a === void 0 && b === void 0) { return 0; } else if (b === void 0) { return 1; } else if (a === void 0) { return -1; } else if (a === b) { continue; } else { return compareIdentifiers(a, b); } } while (++i); } // preminor will bump the version up to the next minor release, and immediately // down to pre-release. premajor and prepatch work the same way. inc(release, identifier, identifierBase) { if (release.startsWith("pre")) { if (!identifier && identifierBase === false) { throw new Error("invalid increment argument: identifier is empty"); } if (identifier) { const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE]); if (!match || match[1] !== identifier) { throw new Error(`invalid identifier: ${identifier}`); } } } switch (release) { case "premajor": this.prerelease.length = 0; this.patch = 0; this.minor = 0; this.major++; this.inc("pre", identifier, identifierBase); break; case "preminor": this.prerelease.length = 0; this.patch = 0; this.minor++; this.inc("pre", identifier, identifierBase); break; case "prepatch": this.prerelease.length = 0; this.inc("patch", identifier, identifierBase); this.inc("pre", identifier, identifierBase); break; // If the input is a non-prerelease version, this acts the same as // prepatch. case "prerelease": if (this.prerelease.length === 0) { this.inc("patch", identifier, identifierBase); } this.inc("pre", identifier, identifierBase); break; case "release": if (this.prerelease.length === 0) { throw new Error(`version ${this.raw} is not a prerelease`); } this.prerelease.length = 0; break; case "major": if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { this.major++; } this.minor = 0; this.patch = 0; this.prerelease = []; break; case "minor": if (this.patch !== 0 || this.prerelease.length === 0) { this.minor++; } this.patch = 0; this.prerelease = []; break; case "patch": if (this.prerelease.length === 0) { this.patch++; } this.prerelease = []; break; // This probably shouldn't be used publicly. // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. case "pre": { const base = Number(identifierBase) ? 1 : 0; if (this.prerelease.length === 0) { this.prerelease = [base]; } else { let i = this.prerelease.length; while (--i >= 0) { if (typeof this.prerelease[i] === "number") { this.prerelease[i]++; i = -2; } } if (i === -1) { if (identifier === this.prerelease.join(".") && identifierBase === false) { throw new Error("invalid increment argument: identifier already exists"); } this.prerelease.push(base); } } if (identifier) { let prerelease = [identifier, base]; if (identifierBase === false) { prerelease = [identifier]; } if (compareIdentifiers(this.prerelease[0], identifier) === 0) { if (isNaN(this.prerelease[1])) { this.prerelease = prerelease; } } else { this.prerelease = prerelease; } } break; } default: throw new Error(`invalid increment argument: ${release}`); } this.raw = this.format(); if (this.build.length) { this.raw += `+${this.build.join(".")}`; } return this; } }; module2.exports = SemVer; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/parse.js var require_parse2 = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/parse.js"(exports2, module2) { "use strict"; var SemVer = require_semver2(); var parse2 = (version, options, throwErrors = false) => { if (version instanceof SemVer) { return version; } try { return new SemVer(version, options); } catch (er) { if (!throwErrors) { return null; } throw er; } }; module2.exports = parse2; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/valid.js var require_valid = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/valid.js"(exports2, module2) { "use strict"; var parse2 = require_parse2(); var valid2 = (version, options) => { const v = parse2(version, options); return v ? v.version : null; }; module2.exports = valid2; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/clean.js var require_clean = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/clean.js"(exports2, module2) { "use strict"; var parse2 = require_parse2(); var clean2 = (version, options) => { const s = parse2(version.trim().replace(/^[=v]+/, ""), options); return s ? s.version : null; }; module2.exports = clean2; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/inc.js var require_inc = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/inc.js"(exports2, module2) { "use strict"; var SemVer = require_semver2(); var inc = (version, release, options, identifier, identifierBase) => { if (typeof options === "string") { identifierBase = identifier; identifier = options; options = void 0; } try { return new SemVer( version instanceof SemVer ? version.version : version, options ).inc(release, identifier, identifierBase).version; } catch (er) { return null; } }; module2.exports = inc; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/diff.js var require_diff = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/diff.js"(exports2, module2) { "use strict"; var parse2 = require_parse2(); var diff = (version1, version2) => { const v1 = parse2(version1, null, true); const v2 = parse2(version2, null, true); const comparison = v1.compare(v2); if (comparison === 0) { return null; } const v1Higher = comparison > 0; const highVersion = v1Higher ? v1 : v2; const lowVersion = v1Higher ? v2 : v1; const highHasPre = !!highVersion.prerelease.length; const lowHasPre = !!lowVersion.prerelease.length; if (lowHasPre && !highHasPre) { if (!lowVersion.patch && !lowVersion.minor) { return "major"; } if (lowVersion.compareMain(highVersion) === 0) { if (lowVersion.minor && !lowVersion.patch) { return "minor"; } return "patch"; } } const prefix = highHasPre ? "pre" : ""; if (v1.major !== v2.major) { return prefix + "major"; } if (v1.minor !== v2.minor) { return prefix + "minor"; } if (v1.patch !== v2.patch) { return prefix + "patch"; } return "prerelease"; }; module2.exports = diff; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/major.js var require_major = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/major.js"(exports2, module2) { "use strict"; var SemVer = require_semver2(); var major = (a, loose) => new SemVer(a, loose).major; module2.exports = major; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/minor.js var require_minor = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/minor.js"(exports2, module2) { "use strict"; var SemVer = require_semver2(); var minor = (a, loose) => new SemVer(a, loose).minor; module2.exports = minor; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/patch.js var require_patch = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/patch.js"(exports2, module2) { "use strict"; var SemVer = require_semver2(); var patch = (a, loose) => new SemVer(a, loose).patch; module2.exports = patch; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/prerelease.js var require_prerelease = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/prerelease.js"(exports2, module2) { "use strict"; var parse2 = require_parse2(); var prerelease = (version, options) => { const parsed = parse2(version, options); return parsed && parsed.prerelease.length ? parsed.prerelease : null; }; module2.exports = prerelease; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/compare.js var require_compare = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/compare.js"(exports2, module2) { "use strict"; var SemVer = require_semver2(); var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose)); module2.exports = compare; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/rcompare.js var require_rcompare = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/rcompare.js"(exports2, module2) { "use strict"; var compare = require_compare(); var rcompare2 = (a, b, loose) => compare(b, a, loose); module2.exports = rcompare2; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/compare-loose.js var require_compare_loose = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/compare-loose.js"(exports2, module2) { "use strict"; var compare = require_compare(); var compareLoose = (a, b) => compare(a, b, true); module2.exports = compareLoose; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/compare-build.js var require_compare_build = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/compare-build.js"(exports2, module2) { "use strict"; var SemVer = require_semver2(); var compareBuild = (a, b, loose) => { const versionA = new SemVer(a, loose); const versionB = new SemVer(b, loose); return versionA.compare(versionB) || versionA.compareBuild(versionB); }; module2.exports = compareBuild; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/sort.js var require_sort = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/sort.js"(exports2, module2) { "use strict"; var compareBuild = require_compare_build(); var sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)); module2.exports = sort; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/rsort.js var require_rsort = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/rsort.js"(exports2, module2) { "use strict"; var compareBuild = require_compare_build(); var rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)); module2.exports = rsort; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/gt.js var require_gt = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/gt.js"(exports2, module2) { "use strict"; var compare = require_compare(); var gt2 = (a, b, loose) => compare(a, b, loose) > 0; module2.exports = gt2; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/lt.js var require_lt = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/lt.js"(exports2, module2) { "use strict"; var compare = require_compare(); var lt = (a, b, loose) => compare(a, b, loose) < 0; module2.exports = lt; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/eq.js var require_eq = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/eq.js"(exports2, module2) { "use strict"; var compare = require_compare(); var eq = (a, b, loose) => compare(a, b, loose) === 0; module2.exports = eq; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/neq.js var require_neq = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/neq.js"(exports2, module2) { "use strict"; var compare = require_compare(); var neq = (a, b, loose) => compare(a, b, loose) !== 0; module2.exports = neq; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/gte.js var require_gte = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/gte.js"(exports2, module2) { "use strict"; var compare = require_compare(); var gte = (a, b, loose) => compare(a, b, loose) >= 0; module2.exports = gte; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/lte.js var require_lte = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/lte.js"(exports2, module2) { "use strict"; var compare = require_compare(); var lte = (a, b, loose) => compare(a, b, loose) <= 0; module2.exports = lte; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/cmp.js var require_cmp = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/cmp.js"(exports2, module2) { "use strict"; var eq = require_eq(); var neq = require_neq(); var gt2 = require_gt(); var gte = require_gte(); var lt = require_lt(); var lte = require_lte(); var cmp = (a, op, b, loose) => { switch (op) { case "===": if (typeof a === "object") { a = a.version; } if (typeof b === "object") { b = b.version; } return a === b; case "!==": if (typeof a === "object") { a = a.version; } if (typeof b === "object") { b = b.version; } return a !== b; case "": case "=": case "==": return eq(a, b, loose); case "!=": return neq(a, b, loose); case ">": return gt2(a, b, loose); case ">=": return gte(a, b, loose); case "<": return lt(a, b, loose); case "<=": return lte(a, b, loose); default: throw new TypeError(`Invalid operator: ${op}`); } }; module2.exports = cmp; } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/coerce.js var require_coerce = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/coerce.js"(exports2, module2) { "use strict"; var SemVer = require_semver2(); var parse2 = require_parse2(); var { safeRe: re, t } = require_re(); var coerce = (version, options) => { if (version instanceof SemVer) { return version; } if (typeof version === "number") { version = String(version); } if (typeof version !== "string") { return null; } options = options || {}; let match = null; if (!options.rtl) { match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]); } else { const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]; let next; while ((next = coerceRtlRegex.exec(version)) && (!match || match.index + match[0].length !== version.length)) { if (!match || next.index + next[0].length !== match.index + match[0].length) { match = next; } coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length; } coerceRtlRegex.lastIndex = -1; } if (match === null) { return null; } const major = match[2]; const minor = match[3] || "0"; const patch = match[4] || "0"; const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ""; const build = options.includePrerelease && match[6] ? `+${match[6]}` : ""; return parse2(`${major}.${minor}.${patch}${prerelease}${build}`, options); }; module2.exports = coerce; } }); // node_modules/@actions/tool-cache/node_modules/semver/internal/lrucache.js var require_lrucache = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/internal/lrucache.js"(exports2, module2) { "use strict"; var LRUCache = class { constructor() { this.max = 1e3; this.map = /* @__PURE__ */ new Map(); } get(key) { const value = this.map.get(key); if (value === void 0) { return void 0; } else { this.map.delete(key); this.map.set(key, value); return value; } } delete(key) { return this.map.delete(key); } set(key, value) { const deleted = this.delete(key); if (!deleted && value !== void 0) { if (this.map.size >= this.max) { const firstKey = this.map.keys().next().value; this.delete(firstKey); } this.map.set(key, value); } return this; } }; module2.exports = LRUCache; } }); // node_modules/@actions/tool-cache/node_modules/semver/classes/range.js var require_range = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/classes/range.js"(exports2, module2) { "use strict"; var SPACE_CHARACTERS = /\s+/g; var Range = class _Range { constructor(range, options) { options = parseOptions(options); if (range instanceof _Range) { if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { return range; } else { return new _Range(range.raw, options); } } if (range instanceof Comparator) { this.raw = range.value; this.set = [[range]]; this.formatted = void 0; return this; } this.options = options; this.loose = !!options.loose; this.includePrerelease = !!options.includePrerelease; this.raw = range.trim().replace(SPACE_CHARACTERS, " "); this.set = this.raw.split("||").map((r) => this.parseRange(r.trim())).filter((c) => c.length); if (!this.set.length) { throw new TypeError(`Invalid SemVer Range: ${this.raw}`); } if (this.set.length > 1) { const first = this.set[0]; this.set = this.set.filter((c) => !isNullSet(c[0])); if (this.set.length === 0) { this.set = [first]; } else if (this.set.length > 1) { for (const c of this.set) { if (c.length === 1 && isAny(c[0])) { this.set = [c]; break; } } } } this.formatted = void 0; } get range() { if (this.formatted === void 0) { this.formatted = ""; for (let i = 0; i < this.set.length; i++) { if (i > 0) { this.formatted += "||"; } const comps = this.set[i]; for (let k = 0; k < comps.length; k++) { if (k > 0) { this.formatted += " "; } this.formatted += comps[k].toString().trim(); } } } return this.formatted; } format() { return this.range; } toString() { return this.range; } parseRange(range) { const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE); const memoKey = memoOpts + ":" + range; const cached = cache.get(memoKey); if (cached) { return cached; } const loose = this.options.loose; const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); debug2("hyphen replace", range); range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); debug2("comparator trim", range); range = range.replace(re[t.TILDETRIM], tildeTrimReplace); debug2("tilde trim", range); range = range.replace(re[t.CARETTRIM], caretTrimReplace); debug2("caret trim", range); let rangeList = range.split(" ").map((comp) => parseComparator(comp, this.options)).join(" ").split(/\s+/).map((comp) => replaceGTE0(comp, this.options)); if (loose) { rangeList = rangeList.filter((comp) => { debug2("loose invalid filter", comp, this.options); return !!comp.match(re[t.COMPARATORLOOSE]); }); } debug2("range list", rangeList); const rangeMap = /* @__PURE__ */ new Map(); const comparators = rangeList.map((comp) => new Comparator(comp, this.options)); for (const comp of comparators) { if (isNullSet(comp)) { return [comp]; } rangeMap.set(comp.value, comp); } if (rangeMap.size > 1 && rangeMap.has("")) { rangeMap.delete(""); } const result = [...rangeMap.values()]; cache.set(memoKey, result); return result; } intersects(range, options) { if (!(range instanceof _Range)) { throw new TypeError("a Range is required"); } return this.set.some((thisComparators) => { return isSatisfiable(thisComparators, options) && range.set.some((rangeComparators) => { return isSatisfiable(rangeComparators, options) && thisComparators.every((thisComparator) => { return rangeComparators.every((rangeComparator) => { return thisComparator.intersects(rangeComparator, options); }); }); }); }); } // if ANY of the sets match ALL of its comparators, then pass test(version) { if (!version) { return false; } if (typeof version === "string") { try { version = new SemVer(version, this.options); } catch (er) { return false; } } for (let i = 0; i < this.set.length; i++) { if (testSet(this.set[i], version, this.options)) { return true; } } return false; } }; module2.exports = Range; var LRU = require_lrucache(); var cache = new LRU(); var parseOptions = require_parse_options(); var Comparator = require_comparator(); var debug2 = require_debug(); var SemVer = require_semver2(); var { safeRe: re, t, comparatorTrimReplace, tildeTrimReplace, caretTrimReplace } = require_re(); var { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require_constants6(); var isNullSet = (c) => c.value === "<0.0.0-0"; var isAny = (c) => c.value === ""; var isSatisfiable = (comparators, options) => { let result = true; const remainingComparators = comparators.slice(); let testComparator = remainingComparators.pop(); while (result && remainingComparators.length) { result = remainingComparators.every((otherComparator) => { return testComparator.intersects(otherComparator, options); }); testComparator = remainingComparators.pop(); } return result; }; var parseComparator = (comp, options) => { comp = comp.replace(re[t.BUILD], ""); debug2("comp", comp, options); comp = replaceCarets(comp, options); debug2("caret", comp); comp = replaceTildes(comp, options); debug2("tildes", comp); comp = replaceXRanges(comp, options); debug2("xrange", comp); comp = replaceStars(comp, options); debug2("stars", comp); return comp; }; var isX = (id) => !id || id.toLowerCase() === "x" || id === "*"; var replaceTildes = (comp, options) => { return comp.trim().split(/\s+/).map((c) => replaceTilde(c, options)).join(" "); }; var replaceTilde = (comp, options) => { const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; return comp.replace(r, (_, M, m, p, pr) => { debug2("tilde", comp, _, M, m, p, pr); let ret; if (isX(M)) { ret = ""; } else if (isX(m)) { ret = `>=${M}.0.0 <${+M + 1}.0.0-0`; } else if (isX(p)) { ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`; } else if (pr) { debug2("replaceTilde pr", pr); ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; } else { ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`; } debug2("tilde return", ret); return ret; }); }; var replaceCarets = (comp, options) => { return comp.trim().split(/\s+/).map((c) => replaceCaret(c, options)).join(" "); }; var replaceCaret = (comp, options) => { debug2("caret", comp, options); const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]; const z = options.includePrerelease ? "-0" : ""; return comp.replace(r, (_, M, m, p, pr) => { debug2("caret", comp, _, M, m, p, pr); let ret; if (isX(M)) { ret = ""; } else if (isX(m)) { ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`; } else if (isX(p)) { if (M === "0") { ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`; } else { ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`; } } else if (pr) { debug2("replaceCaret pr", pr); if (M === "0") { if (m === "0") { ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`; } else { ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; } } else { ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`; } } else { debug2("no pr"); if (M === "0") { if (m === "0") { ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`; } else { ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`; } } else { ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`; } } debug2("caret return", ret); return ret; }); }; var replaceXRanges = (comp, options) => { debug2("replaceXRanges", comp, options); return comp.split(/\s+/).map((c) => replaceXRange(c, options)).join(" "); }; var replaceXRange = (comp, options) => { comp = comp.trim(); const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; return comp.replace(r, (ret, gtlt, M, m, p, pr) => { debug2("xRange", comp, ret, gtlt, M, m, p, pr); const xM = isX(M); const xm = xM || isX(m); const xp = xm || isX(p); const anyX = xp; if (gtlt === "=" && anyX) { gtlt = ""; } pr = options.includePrerelease ? "-0" : ""; if (xM) { if (gtlt === ">" || gtlt === "<") { ret = "<0.0.0-0"; } else { ret = "*"; } } else if (gtlt && anyX) { if (xm) { m = 0; } p = 0; if (gtlt === ">") { gtlt = ">="; if (xm) { M = +M + 1; m = 0; p = 0; } else { m = +m + 1; p = 0; } } else if (gtlt === "<=") { gtlt = "<"; if (xm) { M = +M + 1; } else { m = +m + 1; } } if (gtlt === "<") { pr = "-0"; } ret = `${gtlt + M}.${m}.${p}${pr}`; } else if (xm) { ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; } else if (xp) { ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`; } debug2("xRange return", ret); return ret; }); }; var replaceStars = (comp, options) => { debug2("replaceStars", comp, options); return comp.trim().replace(re[t.STAR], ""); }; var replaceGTE0 = (comp, options) => { debug2("replaceGTE0", comp, options); return comp.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], ""); }; var hyphenReplace = (incPr) => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => { if (isX(fM)) { from = ""; } else if (isX(fm)) { from = `>=${fM}.0.0${incPr ? "-0" : ""}`; } else if (isX(fp)) { from = `>=${fM}.${fm}.0${incPr ? "-0" : ""}`; } else if (fpr) { from = `>=${from}`; } else { from = `>=${from}${incPr ? "-0" : ""}`; } if (isX(tM)) { to = ""; } else if (isX(tm)) { to = `<${+tM + 1}.0.0-0`; } else if (isX(tp)) { to = `<${tM}.${+tm + 1}.0-0`; } else if (tpr) { to = `<=${tM}.${tm}.${tp}-${tpr}`; } else if (incPr) { to = `<${tM}.${tm}.${+tp + 1}-0`; } else { to = `<=${to}`; } return `${from} ${to}`.trim(); }; var testSet = (set, version, options) => { for (let i = 0; i < set.length; i++) { if (!set[i].test(version)) { return false; } } if (version.prerelease.length && !options.includePrerelease) { for (let i = 0; i < set.length; i++) { debug2(set[i].semver); if (set[i].semver === Comparator.ANY) { continue; } if (set[i].semver.prerelease.length > 0) { const allowed = set[i].semver; if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { return true; } } } return false; } return true; }; } }); // node_modules/@actions/tool-cache/node_modules/semver/classes/comparator.js var require_comparator = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/classes/comparator.js"(exports2, module2) { "use strict"; var ANY = /* @__PURE__ */ Symbol("SemVer ANY"); var Comparator = class _Comparator { static get ANY() { return ANY; } constructor(comp, options) { options = parseOptions(options); if (comp instanceof _Comparator) { if (comp.loose === !!options.loose) { return comp; } else { comp = comp.value; } } comp = comp.trim().split(/\s+/).join(" "); debug2("comparator", comp, options); this.options = options; this.loose = !!options.loose; this.parse(comp); if (this.semver === ANY) { this.value = ""; } else { this.value = this.operator + this.semver.version; } debug2("comp", this); } parse(comp) { const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; const m = comp.match(r); if (!m) { throw new TypeError(`Invalid comparator: ${comp}`); } this.operator = m[1] !== void 0 ? m[1] : ""; if (this.operator === "=") { this.operator = ""; } if (!m[2]) { this.semver = ANY; } else { this.semver = new SemVer(m[2], this.options.loose); } } toString() { return this.value; } test(version) { debug2("Comparator.test", version, this.options.loose); if (this.semver === ANY || version === ANY) { return true; } if (typeof version === "string") { try { version = new SemVer(version, this.options); } catch (er) { return false; } } return cmp(version, this.operator, this.semver, this.options); } intersects(comp, options) { if (!(comp instanceof _Comparator)) { throw new TypeError("a Comparator is required"); } if (this.operator === "") { if (this.value === "") { return true; } return new Range(comp.value, options).test(this.value); } else if (comp.operator === "") { if (comp.value === "") { return true; } return new Range(this.value, options).test(comp.semver); } options = parseOptions(options); if (options.includePrerelease && (this.value === "<0.0.0-0" || comp.value === "<0.0.0-0")) { return false; } if (!options.includePrerelease && (this.value.startsWith("<0.0.0") || comp.value.startsWith("<0.0.0"))) { return false; } if (this.operator.startsWith(">") && comp.operator.startsWith(">")) { return true; } if (this.operator.startsWith("<") && comp.operator.startsWith("<")) { return true; } if (this.semver.version === comp.semver.version && this.operator.includes("=") && comp.operator.includes("=")) { return true; } if (cmp(this.semver, "<", comp.semver, options) && this.operator.startsWith(">") && comp.operator.startsWith("<")) { return true; } if (cmp(this.semver, ">", comp.semver, options) && this.operator.startsWith("<") && comp.operator.startsWith(">")) { return true; } return false; } }; module2.exports = Comparator; var parseOptions = require_parse_options(); var { safeRe: re, t } = require_re(); var cmp = require_cmp(); var debug2 = require_debug(); var SemVer = require_semver2(); var Range = require_range(); } }); // node_modules/@actions/tool-cache/node_modules/semver/functions/satisfies.js var require_satisfies = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/functions/satisfies.js"(exports2, module2) { "use strict"; var Range = require_range(); var satisfies3 = (version, range, options) => { try { range = new Range(range, options); } catch (er) { return false; } return range.test(version); }; module2.exports = satisfies3; } }); // node_modules/@actions/tool-cache/node_modules/semver/ranges/to-comparators.js var require_to_comparators = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/ranges/to-comparators.js"(exports2, module2) { "use strict"; var Range = require_range(); var toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" ")); module2.exports = toComparators; } }); // node_modules/@actions/tool-cache/node_modules/semver/ranges/max-satisfying.js var require_max_satisfying = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/ranges/max-satisfying.js"(exports2, module2) { "use strict"; var SemVer = require_semver2(); var Range = require_range(); var maxSatisfying = (versions, range, options) => { let max = null; let maxSV = null; let rangeObj = null; try { rangeObj = new Range(range, options); } catch (er) { return null; } versions.forEach((v) => { if (rangeObj.test(v)) { if (!max || maxSV.compare(v) === -1) { max = v; maxSV = new SemVer(max, options); } } }); return max; }; module2.exports = maxSatisfying; } }); // node_modules/@actions/tool-cache/node_modules/semver/ranges/min-satisfying.js var require_min_satisfying = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/ranges/min-satisfying.js"(exports2, module2) { "use strict"; var SemVer = require_semver2(); var Range = require_range(); var minSatisfying = (versions, range, options) => { let min = null; let minSV = null; let rangeObj = null; try { rangeObj = new Range(range, options); } catch (er) { return null; } versions.forEach((v) => { if (rangeObj.test(v)) { if (!min || minSV.compare(v) === 1) { min = v; minSV = new SemVer(min, options); } } }); return min; }; module2.exports = minSatisfying; } }); // node_modules/@actions/tool-cache/node_modules/semver/ranges/min-version.js var require_min_version = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/ranges/min-version.js"(exports2, module2) { "use strict"; var SemVer = require_semver2(); var Range = require_range(); var gt2 = require_gt(); var minVersion = (range, loose) => { range = new Range(range, loose); let minver = new SemVer("0.0.0"); if (range.test(minver)) { return minver; } minver = new SemVer("0.0.0-0"); if (range.test(minver)) { return minver; } minver = null; for (let i = 0; i < range.set.length; ++i) { const comparators = range.set[i]; let setMin = null; comparators.forEach((comparator) => { const compver = new SemVer(comparator.semver.version); switch (comparator.operator) { case ">": if (compver.prerelease.length === 0) { compver.patch++; } else { compver.prerelease.push(0); } compver.raw = compver.format(); /* fallthrough */ case "": case ">=": if (!setMin || gt2(compver, setMin)) { setMin = compver; } break; case "<": case "<=": break; /* istanbul ignore next */ default: throw new Error(`Unexpected operation: ${comparator.operator}`); } }); if (setMin && (!minver || gt2(minver, setMin))) { minver = setMin; } } if (minver && range.test(minver)) { return minver; } return null; }; module2.exports = minVersion; } }); // node_modules/@actions/tool-cache/node_modules/semver/ranges/valid.js var require_valid2 = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/ranges/valid.js"(exports2, module2) { "use strict"; var Range = require_range(); var validRange = (range, options) => { try { return new Range(range, options).range || "*"; } catch (er) { return null; } }; module2.exports = validRange; } }); // node_modules/@actions/tool-cache/node_modules/semver/ranges/outside.js var require_outside = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/ranges/outside.js"(exports2, module2) { "use strict"; var SemVer = require_semver2(); var Comparator = require_comparator(); var { ANY } = Comparator; var Range = require_range(); var satisfies3 = require_satisfies(); var gt2 = require_gt(); var lt = require_lt(); var lte = require_lte(); var gte = require_gte(); var outside = (version, range, hilo, options) => { version = new SemVer(version, options); range = new Range(range, options); let gtfn, ltefn, ltfn, comp, ecomp; switch (hilo) { case ">": gtfn = gt2; ltefn = lte; ltfn = lt; comp = ">"; ecomp = ">="; break; case "<": gtfn = lt; ltefn = gte; ltfn = gt2; comp = "<"; ecomp = "<="; break; default: throw new TypeError('Must provide a hilo val of "<" or ">"'); } if (satisfies3(version, range, options)) { return false; } for (let i = 0; i < range.set.length; ++i) { const comparators = range.set[i]; let high = null; let low = null; comparators.forEach((comparator) => { if (comparator.semver === ANY) { comparator = new Comparator(">=0.0.0"); } high = high || comparator; low = low || comparator; if (gtfn(comparator.semver, high.semver, options)) { high = comparator; } else if (ltfn(comparator.semver, low.semver, options)) { low = comparator; } }); if (high.operator === comp || high.operator === ecomp) { return false; } if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) { return false; } else if (low.operator === ecomp && ltfn(version, low.semver)) { return false; } } return true; }; module2.exports = outside; } }); // node_modules/@actions/tool-cache/node_modules/semver/ranges/gtr.js var require_gtr = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/ranges/gtr.js"(exports2, module2) { "use strict"; var outside = require_outside(); var gtr = (version, range, options) => outside(version, range, ">", options); module2.exports = gtr; } }); // node_modules/@actions/tool-cache/node_modules/semver/ranges/ltr.js var require_ltr = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/ranges/ltr.js"(exports2, module2) { "use strict"; var outside = require_outside(); var ltr = (version, range, options) => outside(version, range, "<", options); module2.exports = ltr; } }); // node_modules/@actions/tool-cache/node_modules/semver/ranges/intersects.js var require_intersects = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/ranges/intersects.js"(exports2, module2) { "use strict"; var Range = require_range(); var intersects = (r1, r2, options) => { r1 = new Range(r1, options); r2 = new Range(r2, options); return r1.intersects(r2, options); }; module2.exports = intersects; } }); // node_modules/@actions/tool-cache/node_modules/semver/ranges/simplify.js var require_simplify = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/ranges/simplify.js"(exports2, module2) { "use strict"; var satisfies3 = require_satisfies(); var compare = require_compare(); module2.exports = (versions, range, options) => { const set = []; let first = null; let prev = null; const v = versions.sort((a, b) => compare(a, b, options)); for (const version of v) { const included = satisfies3(version, range, options); if (included) { prev = version; if (!first) { first = version; } } else { if (prev) { set.push([first, prev]); } prev = null; first = null; } } if (first) { set.push([first, null]); } const ranges = []; for (const [min, max] of set) { if (min === max) { ranges.push(min); } else if (!max && min === v[0]) { ranges.push("*"); } else if (!max) { ranges.push(`>=${min}`); } else if (min === v[0]) { ranges.push(`<=${max}`); } else { ranges.push(`${min} - ${max}`); } } const simplified = ranges.join(" || "); const original = typeof range.raw === "string" ? range.raw : String(range); return simplified.length < original.length ? simplified : range; }; } }); // node_modules/@actions/tool-cache/node_modules/semver/ranges/subset.js var require_subset = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/ranges/subset.js"(exports2, module2) { "use strict"; var Range = require_range(); var Comparator = require_comparator(); var { ANY } = Comparator; var satisfies3 = require_satisfies(); var compare = require_compare(); var subset = (sub, dom, options = {}) => { if (sub === dom) { return true; } sub = new Range(sub, options); dom = new Range(dom, options); let sawNonNull = false; OUTER: for (const simpleSub of sub.set) { for (const simpleDom of dom.set) { const isSub = simpleSubset(simpleSub, simpleDom, options); sawNonNull = sawNonNull || isSub !== null; if (isSub) { continue OUTER; } } if (sawNonNull) { return false; } } return true; }; var minimumVersionWithPreRelease = [new Comparator(">=0.0.0-0")]; var minimumVersion = [new Comparator(">=0.0.0")]; var simpleSubset = (sub, dom, options) => { if (sub === dom) { return true; } if (sub.length === 1 && sub[0].semver === ANY) { if (dom.length === 1 && dom[0].semver === ANY) { return true; } else if (options.includePrerelease) { sub = minimumVersionWithPreRelease; } else { sub = minimumVersion; } } if (dom.length === 1 && dom[0].semver === ANY) { if (options.includePrerelease) { return true; } else { dom = minimumVersion; } } const eqSet = /* @__PURE__ */ new Set(); let gt2, lt; for (const c of sub) { if (c.operator === ">" || c.operator === ">=") { gt2 = higherGT(gt2, c, options); } else if (c.operator === "<" || c.operator === "<=") { lt = lowerLT(lt, c, options); } else { eqSet.add(c.semver); } } if (eqSet.size > 1) { return null; } let gtltComp; if (gt2 && lt) { gtltComp = compare(gt2.semver, lt.semver, options); if (gtltComp > 0) { return null; } else if (gtltComp === 0 && (gt2.operator !== ">=" || lt.operator !== "<=")) { return null; } } for (const eq of eqSet) { if (gt2 && !satisfies3(eq, String(gt2), options)) { return null; } if (lt && !satisfies3(eq, String(lt), options)) { return null; } for (const c of dom) { if (!satisfies3(eq, String(c), options)) { return false; } } return true; } let higher, lower; let hasDomLT, hasDomGT; let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false; let needDomGTPre = gt2 && !options.includePrerelease && gt2.semver.prerelease.length ? gt2.semver : false; if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === "<" && needDomLTPre.prerelease[0] === 0) { needDomLTPre = false; } for (const c of dom) { hasDomGT = hasDomGT || c.operator === ">" || c.operator === ">="; hasDomLT = hasDomLT || c.operator === "<" || c.operator === "<="; if (gt2) { if (needDomGTPre) { if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) { needDomGTPre = false; } } if (c.operator === ">" || c.operator === ">=") { higher = higherGT(gt2, c, options); if (higher === c && higher !== gt2) { return false; } } else if (gt2.operator === ">=" && !satisfies3(gt2.semver, String(c), options)) { return false; } } if (lt) { if (needDomLTPre) { if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) { needDomLTPre = false; } } if (c.operator === "<" || c.operator === "<=") { lower = lowerLT(lt, c, options); if (lower === c && lower !== lt) { return false; } } else if (lt.operator === "<=" && !satisfies3(lt.semver, String(c), options)) { return false; } } if (!c.operator && (lt || gt2) && gtltComp !== 0) { return false; } } if (gt2 && hasDomLT && !lt && gtltComp !== 0) { return false; } if (lt && hasDomGT && !gt2 && gtltComp !== 0) { return false; } if (needDomGTPre || needDomLTPre) { return false; } return true; }; var higherGT = (a, b, options) => { if (!a) { return b; } const comp = compare(a.semver, b.semver, options); return comp > 0 ? a : comp < 0 ? b : b.operator === ">" && a.operator === ">=" ? b : a; }; var lowerLT = (a, b, options) => { if (!a) { return b; } const comp = compare(a.semver, b.semver, options); return comp < 0 ? a : comp > 0 ? b : b.operator === "<" && a.operator === "<=" ? b : a; }; module2.exports = subset; } }); // node_modules/@actions/tool-cache/node_modules/semver/index.js var require_semver3 = __commonJS({ "node_modules/@actions/tool-cache/node_modules/semver/index.js"(exports2, module2) { "use strict"; var internalRe = require_re(); var constants3 = require_constants6(); var SemVer = require_semver2(); var identifiers = require_identifiers(); var parse2 = require_parse2(); var valid2 = require_valid(); var clean2 = require_clean(); var inc = require_inc(); var diff = require_diff(); var major = require_major(); var minor = require_minor(); var patch = require_patch(); var prerelease = require_prerelease(); var compare = require_compare(); var rcompare2 = require_rcompare(); var compareLoose = require_compare_loose(); var compareBuild = require_compare_build(); var sort = require_sort(); var rsort = require_rsort(); var gt2 = require_gt(); var lt = require_lt(); var eq = require_eq(); var neq = require_neq(); var gte = require_gte(); var lte = require_lte(); var cmp = require_cmp(); var coerce = require_coerce(); var Comparator = require_comparator(); var Range = require_range(); var satisfies3 = require_satisfies(); var toComparators = require_to_comparators(); var maxSatisfying = require_max_satisfying(); var minSatisfying = require_min_satisfying(); var minVersion = require_min_version(); var validRange = require_valid2(); var outside = require_outside(); var gtr = require_gtr(); var ltr = require_ltr(); var intersects = require_intersects(); var simplifyRange = require_simplify(); var subset = require_subset(); module2.exports = { parse: parse2, valid: valid2, clean: clean2, inc, diff, major, minor, patch, prerelease, compare, rcompare: rcompare2, compareLoose, compareBuild, sort, rsort, gt: gt2, lt, eq, neq, gte, lte, cmp, coerce, Comparator, Range, satisfies: satisfies3, toComparators, maxSatisfying, minSatisfying, minVersion, validRange, outside, gtr, ltr, intersects, simplifyRange, subset, SemVer, re: internalRe.re, src: internalRe.src, tokens: internalRe.t, SEMVER_SPEC_VERSION: constants3.SEMVER_SPEC_VERSION, RELEASE_TYPES: constants3.RELEASE_TYPES, compareIdentifiers: identifiers.compareIdentifiers, rcompareIdentifiers: identifiers.rcompareIdentifiers }; } }); // node_modules/@actions/core/lib/command.js var os = __toESM(require("os"), 1); // node_modules/@actions/core/lib/utils.js function toCommandValue(input) { if (input === null || input === void 0) { return ""; } else if (typeof input === "string" || input instanceof String) { return input; } return JSON.stringify(input); } // node_modules/@actions/core/lib/command.js function issueCommand(command, properties, message) { const cmd = new Command(command, properties, message); process.stdout.write(cmd.toString() + os.EOL); } var CMD_STRING = "::"; var Command = class { constructor(command, properties, message) { if (!command) { command = "missing.command"; } this.command = command; this.properties = properties; this.message = message; } toString() { let cmdStr = CMD_STRING + this.command; if (this.properties && Object.keys(this.properties).length > 0) { cmdStr += " "; let first = true; for (const key in this.properties) { if (this.properties.hasOwnProperty(key)) { const val = this.properties[key]; if (val) { if (first) { first = false; } else { cmdStr += ","; } cmdStr += `${key}=${escapeProperty(val)}`; } } } } cmdStr += `${CMD_STRING}${escapeData(this.message)}`; return cmdStr; } }; function escapeData(s) { return toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A"); } function escapeProperty(s) { return toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C"); } // node_modules/@actions/core/lib/file-command.js var crypto = __toESM(require("crypto"), 1); var fs = __toESM(require("fs"), 1); var os2 = __toESM(require("os"), 1); function issueFileCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; if (!filePath) { throw new Error(`Unable to find environment variable for file command ${command}`); } if (!fs.existsSync(filePath)) { throw new Error(`Missing file at path: ${filePath}`); } fs.appendFileSync(filePath, `${toCommandValue(message)}${os2.EOL}`, { encoding: "utf8" }); } function prepareKeyValueMessage(key, value) { const delimiter = `ghadelimiter_${crypto.randomUUID()}`; const convertedValue = toCommandValue(value); if (key.includes(delimiter)) { throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); } if (convertedValue.includes(delimiter)) { throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); } return `${key}<<${delimiter}${os2.EOL}${convertedValue}${os2.EOL}${delimiter}`; } // node_modules/@actions/core/lib/core.js var os4 = __toESM(require("os"), 1); // node_modules/@actions/http-client/lib/index.js var http = __toESM(require("http"), 1); var https = __toESM(require("https"), 1); // node_modules/@actions/http-client/lib/proxy.js function getProxyUrl(reqUrl) { const usingSsl = reqUrl.protocol === "https:"; if (checkBypass(reqUrl)) { return void 0; } const proxyVar = (() => { if (usingSsl) { return process.env["https_proxy"] || process.env["HTTPS_PROXY"]; } else { return process.env["http_proxy"] || process.env["HTTP_PROXY"]; } })(); if (proxyVar) { try { return new DecodedURL(proxyVar); } catch (_a) { if (!proxyVar.startsWith("http://") && !proxyVar.startsWith("https://")) return new DecodedURL(`http://${proxyVar}`); } } else { return void 0; } } function checkBypass(reqUrl) { if (!reqUrl.hostname) { return false; } const reqHost = reqUrl.hostname; if (isLoopbackAddress(reqHost)) { return true; } const noProxy = process.env["no_proxy"] || process.env["NO_PROXY"] || ""; if (!noProxy) { return false; } let reqPort; if (reqUrl.port) { reqPort = Number(reqUrl.port); } else if (reqUrl.protocol === "http:") { reqPort = 80; } else if (reqUrl.protocol === "https:") { reqPort = 443; } const upperReqHosts = [reqUrl.hostname.toUpperCase()]; if (typeof reqPort === "number") { upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); } for (const upperNoProxyItem of noProxy.split(",").map((x) => x.trim().toUpperCase()).filter((x) => x)) { if (upperNoProxyItem === "*" || upperReqHosts.some((x) => x === upperNoProxyItem || x.endsWith(`.${upperNoProxyItem}`) || upperNoProxyItem.startsWith(".") && x.endsWith(`${upperNoProxyItem}`))) { return true; } } return false; } function isLoopbackAddress(host) { const hostLower = host.toLowerCase(); return hostLower === "localhost" || hostLower.startsWith("127.") || hostLower.startsWith("[::1]") || hostLower.startsWith("[0:0:0:0:0:0:0:1]"); } var DecodedURL = class extends URL { constructor(url, base) { super(url, base); this._decodedUsername = decodeURIComponent(super.username); this._decodedPassword = decodeURIComponent(super.password); } get username() { return this._decodedUsername; } get password() { return this._decodedPassword; } }; // node_modules/@actions/http-client/lib/index.js var tunnel = __toESM(require_tunnel2(), 1); var import_undici = __toESM(require_undici(), 1); var __awaiter = function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var HttpCodes; (function(HttpCodes2) { HttpCodes2[HttpCodes2["OK"] = 200] = "OK"; HttpCodes2[HttpCodes2["MultipleChoices"] = 300] = "MultipleChoices"; HttpCodes2[HttpCodes2["MovedPermanently"] = 301] = "MovedPermanently"; HttpCodes2[HttpCodes2["ResourceMoved"] = 302] = "ResourceMoved"; HttpCodes2[HttpCodes2["SeeOther"] = 303] = "SeeOther"; HttpCodes2[HttpCodes2["NotModified"] = 304] = "NotModified"; HttpCodes2[HttpCodes2["UseProxy"] = 305] = "UseProxy"; HttpCodes2[HttpCodes2["SwitchProxy"] = 306] = "SwitchProxy"; HttpCodes2[HttpCodes2["TemporaryRedirect"] = 307] = "TemporaryRedirect"; HttpCodes2[HttpCodes2["PermanentRedirect"] = 308] = "PermanentRedirect"; HttpCodes2[HttpCodes2["BadRequest"] = 400] = "BadRequest"; HttpCodes2[HttpCodes2["Unauthorized"] = 401] = "Unauthorized"; HttpCodes2[HttpCodes2["PaymentRequired"] = 402] = "PaymentRequired"; HttpCodes2[HttpCodes2["Forbidden"] = 403] = "Forbidden"; HttpCodes2[HttpCodes2["NotFound"] = 404] = "NotFound"; HttpCodes2[HttpCodes2["MethodNotAllowed"] = 405] = "MethodNotAllowed"; HttpCodes2[HttpCodes2["NotAcceptable"] = 406] = "NotAcceptable"; HttpCodes2[HttpCodes2["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; HttpCodes2[HttpCodes2["RequestTimeout"] = 408] = "RequestTimeout"; HttpCodes2[HttpCodes2["Conflict"] = 409] = "Conflict"; HttpCodes2[HttpCodes2["Gone"] = 410] = "Gone"; HttpCodes2[HttpCodes2["TooManyRequests"] = 429] = "TooManyRequests"; HttpCodes2[HttpCodes2["InternalServerError"] = 500] = "InternalServerError"; HttpCodes2[HttpCodes2["NotImplemented"] = 501] = "NotImplemented"; HttpCodes2[HttpCodes2["BadGateway"] = 502] = "BadGateway"; HttpCodes2[HttpCodes2["ServiceUnavailable"] = 503] = "ServiceUnavailable"; HttpCodes2[HttpCodes2["GatewayTimeout"] = 504] = "GatewayTimeout"; })(HttpCodes || (HttpCodes = {})); var Headers; (function(Headers2) { Headers2["Accept"] = "accept"; Headers2["ContentType"] = "content-type"; })(Headers || (Headers = {})); var MediaTypes; (function(MediaTypes2) { MediaTypes2["ApplicationJson"] = "application/json"; })(MediaTypes || (MediaTypes = {})); var HttpRedirectCodes = [ HttpCodes.MovedPermanently, HttpCodes.ResourceMoved, HttpCodes.SeeOther, HttpCodes.TemporaryRedirect, HttpCodes.PermanentRedirect ]; var HttpResponseRetryCodes = [ HttpCodes.BadGateway, HttpCodes.ServiceUnavailable, HttpCodes.GatewayTimeout ]; var RetryableHttpVerbs = ["OPTIONS", "GET", "DELETE", "HEAD"]; var ExponentialBackoffCeiling = 10; var ExponentialBackoffTimeSlice = 5; var HttpClientError = class _HttpClientError extends Error { constructor(message, statusCode) { super(message); this.name = "HttpClientError"; this.statusCode = statusCode; Object.setPrototypeOf(this, _HttpClientError.prototype); } }; var HttpClientResponse = class { constructor(message) { this.message = message; } readBody() { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { let output = Buffer.alloc(0); this.message.on("data", (chunk) => { output = Buffer.concat([output, chunk]); }); this.message.on("end", () => { resolve(output.toString()); }); })); }); } readBodyBuffer() { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { const chunks = []; this.message.on("data", (chunk) => { chunks.push(chunk); }); this.message.on("end", () => { resolve(Buffer.concat(chunks)); }); })); }); } }; var HttpClient = class { constructor(userAgent3, handlers, requestOptions) { this._ignoreSslError = false; this._allowRedirects = true; this._allowRedirectDowngrade = false; this._maxRedirects = 50; this._allowRetries = false; this._maxRetries = 1; this._keepAlive = false; this._disposed = false; this.userAgent = this._getUserAgentWithOrchestrationId(userAgent3); this.handlers = handlers || []; this.requestOptions = requestOptions; if (requestOptions) { if (requestOptions.ignoreSslError != null) { this._ignoreSslError = requestOptions.ignoreSslError; } this._socketTimeout = requestOptions.socketTimeout; if (requestOptions.allowRedirects != null) { this._allowRedirects = requestOptions.allowRedirects; } if (requestOptions.allowRedirectDowngrade != null) { this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; } if (requestOptions.maxRedirects != null) { this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); } if (requestOptions.keepAlive != null) { this._keepAlive = requestOptions.keepAlive; } if (requestOptions.allowRetries != null) { this._allowRetries = requestOptions.allowRetries; } if (requestOptions.maxRetries != null) { this._maxRetries = requestOptions.maxRetries; } } } options(requestUrl, additionalHeaders) { return __awaiter(this, void 0, void 0, function* () { return this.request("OPTIONS", requestUrl, null, additionalHeaders || {}); }); } get(requestUrl, additionalHeaders) { return __awaiter(this, void 0, void 0, function* () { return this.request("GET", requestUrl, null, additionalHeaders || {}); }); } del(requestUrl, additionalHeaders) { return __awaiter(this, void 0, void 0, function* () { return this.request("DELETE", requestUrl, null, additionalHeaders || {}); }); } post(requestUrl, data, additionalHeaders) { return __awaiter(this, void 0, void 0, function* () { return this.request("POST", requestUrl, data, additionalHeaders || {}); }); } patch(requestUrl, data, additionalHeaders) { return __awaiter(this, void 0, void 0, function* () { return this.request("PATCH", requestUrl, data, additionalHeaders || {}); }); } put(requestUrl, data, additionalHeaders) { return __awaiter(this, void 0, void 0, function* () { return this.request("PUT", requestUrl, data, additionalHeaders || {}); }); } head(requestUrl, additionalHeaders) { return __awaiter(this, void 0, void 0, function* () { return this.request("HEAD", requestUrl, null, additionalHeaders || {}); }); } sendStream(verb, requestUrl, stream2, additionalHeaders) { return __awaiter(this, void 0, void 0, function* () { return this.request(verb, requestUrl, stream2, additionalHeaders); }); } /** * Gets a typed object from an endpoint * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise */ getJson(requestUrl_1) { return __awaiter(this, arguments, void 0, function* (requestUrl, additionalHeaders = {}) { additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); const res = yield this.get(requestUrl, additionalHeaders); return this._processResponse(res, this.requestOptions); }); } postJson(requestUrl_1, obj_1) { return __awaiter(this, arguments, void 0, function* (requestUrl, obj, additionalHeaders = {}) { const data = JSON.stringify(obj, null, 2); additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes.ApplicationJson); const res = yield this.post(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); }); } putJson(requestUrl_1, obj_1) { return __awaiter(this, arguments, void 0, function* (requestUrl, obj, additionalHeaders = {}) { const data = JSON.stringify(obj, null, 2); additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes.ApplicationJson); const res = yield this.put(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); }); } patchJson(requestUrl_1, obj_1) { return __awaiter(this, arguments, void 0, function* (requestUrl, obj, additionalHeaders = {}) { const data = JSON.stringify(obj, null, 2); additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes.ApplicationJson); const res = yield this.patch(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); }); } /** * Makes a raw http request. * All other methods such as get, post, patch, and request ultimately call this. * Prefer get, del, post and patch */ request(verb, requestUrl, data, headers) { return __awaiter(this, void 0, void 0, function* () { if (this._disposed) { throw new Error("Client has already been disposed."); } const parsedUrl = new URL(requestUrl); let info2 = this._prepareRequest(verb, parsedUrl, headers); const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1; let numTries = 0; let response; do { response = yield this.requestRaw(info2, data); if (response && response.message && response.message.statusCode === HttpCodes.Unauthorized) { let authenticationHandler; for (const handler2 of this.handlers) { if (handler2.canHandleAuthentication(response)) { authenticationHandler = handler2; break; } } if (authenticationHandler) { return authenticationHandler.handleAuthentication(this, info2, data); } else { return response; } } let redirectsRemaining = this._maxRedirects; while (response.message.statusCode && HttpRedirectCodes.includes(response.message.statusCode) && this._allowRedirects && redirectsRemaining > 0) { const redirectUrl = response.message.headers["location"]; if (!redirectUrl) { break; } const parsedRedirectUrl = new URL(redirectUrl); if (parsedUrl.protocol === "https:" && parsedUrl.protocol !== parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) { throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true."); } yield response.readBody(); if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { for (const header in headers) { if (header.toLowerCase() === "authorization") { delete headers[header]; } } } info2 = this._prepareRequest(verb, parsedRedirectUrl, headers); response = yield this.requestRaw(info2, data); redirectsRemaining--; } if (!response.message.statusCode || !HttpResponseRetryCodes.includes(response.message.statusCode)) { return response; } numTries += 1; if (numTries < maxTries) { yield response.readBody(); yield this._performExponentialBackoff(numTries); } } while (numTries < maxTries); return response; }); } /** * Needs to be called if keepAlive is set to true in request options. */ dispose() { if (this._agent) { this._agent.destroy(); } this._disposed = true; } /** * Raw request. * @param info * @param data */ requestRaw(info2, data) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => { function callbackForResult(err, res) { if (err) { reject(err); } else if (!res) { reject(new Error("Unknown error")); } else { resolve(res); } } this.requestRawWithCallback(info2, data, callbackForResult); }); }); } /** * Raw request with callback. * @param info * @param data * @param onResult */ requestRawWithCallback(info2, data, onResult) { if (typeof data === "string") { if (!info2.options.headers) { info2.options.headers = {}; } info2.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8"); } let callbackCalled = false; function handleResult(err, res) { if (!callbackCalled) { callbackCalled = true; onResult(err, res); } } const req = info2.httpModule.request(info2.options, (msg) => { const res = new HttpClientResponse(msg); handleResult(void 0, res); }); let socket; req.on("socket", (sock) => { socket = sock; }); req.setTimeout(this._socketTimeout || 3 * 6e4, () => { if (socket) { socket.end(); } handleResult(new Error(`Request timeout: ${info2.options.path}`)); }); req.on("error", function(err) { handleResult(err); }); if (data && typeof data === "string") { req.write(data, "utf8"); } if (data && typeof data !== "string") { data.on("close", function() { req.end(); }); data.pipe(req); } else { req.end(); } } /** * Gets an http agent. This function is useful when you need an http agent that handles * routing through a proxy server - depending upon the url and proxy environment variables. * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com */ getAgent(serverUrl) { const parsedUrl = new URL(serverUrl); return this._getAgent(parsedUrl); } getAgentDispatcher(serverUrl) { const parsedUrl = new URL(serverUrl); const proxyUrl = getProxyUrl(parsedUrl); const useProxy = proxyUrl && proxyUrl.hostname; if (!useProxy) { return; } return this._getProxyAgentDispatcher(parsedUrl, proxyUrl); } _prepareRequest(method, requestUrl, headers) { const info2 = {}; info2.parsedUrl = requestUrl; const usingSsl = info2.parsedUrl.protocol === "https:"; info2.httpModule = usingSsl ? https : http; const defaultPort = usingSsl ? 443 : 80; info2.options = {}; info2.options.host = info2.parsedUrl.hostname; info2.options.port = info2.parsedUrl.port ? parseInt(info2.parsedUrl.port) : defaultPort; info2.options.path = (info2.parsedUrl.pathname || "") + (info2.parsedUrl.search || ""); info2.options.method = method; info2.options.headers = this._mergeHeaders(headers); if (this.userAgent != null) { info2.options.headers["user-agent"] = this.userAgent; } info2.options.agent = this._getAgent(info2.parsedUrl); if (this.handlers) { for (const handler2 of this.handlers) { handler2.prepareRequest(info2.options); } } return info2; } _mergeHeaders(headers) { if (this.requestOptions && this.requestOptions.headers) { return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); } return lowercaseKeys(headers || {}); } /** * Gets an existing header value or returns a default. * Handles converting number header values to strings since HTTP headers must be strings. * Note: This returns string | string[] since some headers can have multiple values. * For headers that must always be a single string (like Content-Type), use the * specialized _getExistingOrDefaultContentTypeHeader method instead. */ _getExistingOrDefaultHeader(additionalHeaders, header, _default) { let clientHeader; if (this.requestOptions && this.requestOptions.headers) { const headerValue = lowercaseKeys(this.requestOptions.headers)[header]; if (headerValue) { clientHeader = typeof headerValue === "number" ? headerValue.toString() : headerValue; } } const additionalValue = additionalHeaders[header]; if (additionalValue !== void 0) { return typeof additionalValue === "number" ? additionalValue.toString() : additionalValue; } if (clientHeader !== void 0) { return clientHeader; } return _default; } /** * Specialized version of _getExistingOrDefaultHeader for Content-Type header. * Always returns a single string (not an array) since Content-Type should be a single value. * Converts arrays to comma-separated strings and numbers to strings to ensure type safety. * This was split from _getExistingOrDefaultHeader to provide stricter typing for callers * that assign the result to places expecting a string (e.g., additionalHeaders[Headers.ContentType]). */ _getExistingOrDefaultContentTypeHeader(additionalHeaders, _default) { let clientHeader; if (this.requestOptions && this.requestOptions.headers) { const headerValue = lowercaseKeys(this.requestOptions.headers)[Headers.ContentType]; if (headerValue) { if (typeof headerValue === "number") { clientHeader = String(headerValue); } else if (Array.isArray(headerValue)) { clientHeader = headerValue.join(", "); } else { clientHeader = headerValue; } } } const additionalValue = additionalHeaders[Headers.ContentType]; if (additionalValue !== void 0) { if (typeof additionalValue === "number") { return String(additionalValue); } else if (Array.isArray(additionalValue)) { return additionalValue.join(", "); } else { return additionalValue; } } if (clientHeader !== void 0) { return clientHeader; } return _default; } _getAgent(parsedUrl) { let agent; const proxyUrl = getProxyUrl(parsedUrl); const useProxy = proxyUrl && proxyUrl.hostname; if (this._keepAlive && useProxy) { agent = this._proxyAgent; } if (!useProxy) { agent = this._agent; } if (agent) { return agent; } const usingSsl = parsedUrl.protocol === "https:"; let maxSockets = 100; if (this.requestOptions) { maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; } if (proxyUrl && proxyUrl.hostname) { const agentOptions = { maxSockets, keepAlive: this._keepAlive, proxy: Object.assign(Object.assign({}, (proxyUrl.username || proxyUrl.password) && { proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` }), { host: proxyUrl.hostname, port: proxyUrl.port }) }; let tunnelAgent; const overHttps = proxyUrl.protocol === "https:"; if (usingSsl) { tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; } else { tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; } agent = tunnelAgent(agentOptions); this._proxyAgent = agent; } if (!agent) { const options = { keepAlive: this._keepAlive, maxSockets }; agent = usingSsl ? new https.Agent(options) : new http.Agent(options); this._agent = agent; } if (usingSsl && this._ignoreSslError) { agent.options = Object.assign(agent.options || {}, { rejectUnauthorized: false }); } return agent; } _getProxyAgentDispatcher(parsedUrl, proxyUrl) { let proxyAgent; if (this._keepAlive) { proxyAgent = this._proxyAgentDispatcher; } if (proxyAgent) { return proxyAgent; } const usingSsl = parsedUrl.protocol === "https:"; proxyAgent = new import_undici.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, (proxyUrl.username || proxyUrl.password) && { token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString("base64")}` })); this._proxyAgentDispatcher = proxyAgent; if (usingSsl && this._ignoreSslError) { proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, { rejectUnauthorized: false }); } return proxyAgent; } _getUserAgentWithOrchestrationId(userAgent3) { const baseUserAgent = userAgent3 || "actions/http-client"; const orchId = process.env["ACTIONS_ORCHESTRATION_ID"]; if (orchId) { const sanitizedId = orchId.replace(/[^a-z0-9_.-]/gi, "_"); return `${baseUserAgent} actions_orchestration_id/${sanitizedId}`; } return baseUserAgent; } _performExponentialBackoff(retryNumber) { return __awaiter(this, void 0, void 0, function* () { retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); return new Promise((resolve) => setTimeout(() => resolve(), ms)); }); } _processResponse(res, options) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { const statusCode = res.message.statusCode || 0; const response = { statusCode, result: null, headers: {} }; if (statusCode === HttpCodes.NotFound) { resolve(response); } function dateTimeDeserializer(key, value) { if (typeof value === "string") { const a = new Date(value); if (!isNaN(a.valueOf())) { return a; } } return value; } let obj; let contents; try { contents = yield res.readBody(); if (contents && contents.length > 0) { if (options && options.deserializeDates) { obj = JSON.parse(contents, dateTimeDeserializer); } else { obj = JSON.parse(contents); } response.result = obj; } response.headers = res.message.headers; } catch (err) { } if (statusCode > 299) { let msg; if (obj && obj.message) { msg = obj.message; } else if (contents && contents.length > 0) { msg = contents; } else { msg = `Failed request: (${statusCode})`; } const err = new HttpClientError(msg, statusCode); err.result = response.result; reject(err); } else { resolve(response); } })); }); } }; var lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => (c[k.toLowerCase()] = obj[k], c), {}); // node_modules/@actions/core/lib/summary.js var import_os = require("os"); var import_fs = require("fs"); var __awaiter2 = function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var { access, appendFile, writeFile } = import_fs.promises; var SUMMARY_ENV_VAR = "GITHUB_STEP_SUMMARY"; var Summary = class { constructor() { this._buffer = ""; } /** * Finds the summary file path from the environment, rejects if env var is not found or file does not exist * Also checks r/w permissions. * * @returns step summary file path */ filePath() { return __awaiter2(this, void 0, void 0, function* () { if (this._filePath) { return this._filePath; } const pathFromEnv = process.env[SUMMARY_ENV_VAR]; if (!pathFromEnv) { throw new Error(`Unable to find environment variable for $${SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); } try { yield access(pathFromEnv, import_fs.constants.R_OK | import_fs.constants.W_OK); } catch (_a) { throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); } this._filePath = pathFromEnv; return this._filePath; }); } /** * Wraps content in an HTML tag, adding any HTML attributes * * @param {string} tag HTML tag to wrap * @param {string | null} content content within the tag * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add * * @returns {string} content wrapped in HTML element */ wrap(tag, content, attrs = {}) { const htmlAttrs = Object.entries(attrs).map(([key, value]) => ` ${key}="${value}"`).join(""); if (!content) { return `<${tag}${htmlAttrs}>`; } return `<${tag}${htmlAttrs}>${content}`; } /** * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. * * @param {SummaryWriteOptions} [options] (optional) options for write operation * * @returns {Promise} summary instance */ write(options) { return __awaiter2(this, void 0, void 0, function* () { const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite); const filePath = yield this.filePath(); const writeFunc = overwrite ? writeFile : appendFile; yield writeFunc(filePath, this._buffer, { encoding: "utf8" }); return this.emptyBuffer(); }); } /** * Clears the summary buffer and wipes the summary file * * @returns {Summary} summary instance */ clear() { return __awaiter2(this, void 0, void 0, function* () { return this.emptyBuffer().write({ overwrite: true }); }); } /** * Returns the current summary buffer as a string * * @returns {string} string of summary buffer */ stringify() { return this._buffer; } /** * If the summary buffer is empty * * @returns {boolen} true if the buffer is empty */ isEmptyBuffer() { return this._buffer.length === 0; } /** * Resets the summary buffer without writing to summary file * * @returns {Summary} summary instance */ emptyBuffer() { this._buffer = ""; return this; } /** * Adds raw text to the summary buffer * * @param {string} text content to add * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) * * @returns {Summary} summary instance */ addRaw(text, addEOL = false) { this._buffer += text; return addEOL ? this.addEOL() : this; } /** * Adds the operating system-specific end-of-line marker to the buffer * * @returns {Summary} summary instance */ addEOL() { return this.addRaw(import_os.EOL); } /** * Adds an HTML codeblock to the summary buffer * * @param {string} code content to render within fenced code block * @param {string} lang (optional) language to syntax highlight code * * @returns {Summary} summary instance */ addCodeBlock(code, lang) { const attrs = Object.assign({}, lang && { lang }); const element = this.wrap("pre", this.wrap("code", code), attrs); return this.addRaw(element).addEOL(); } /** * Adds an HTML list to the summary buffer * * @param {string[]} items list of items to render * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) * * @returns {Summary} summary instance */ addList(items, ordered = false) { const tag = ordered ? "ol" : "ul"; const listItems = items.map((item) => this.wrap("li", item)).join(""); const element = this.wrap(tag, listItems); return this.addRaw(element).addEOL(); } /** * Adds an HTML table to the summary buffer * * @param {SummaryTableCell[]} rows table rows * * @returns {Summary} summary instance */ addTable(rows) { const tableBody = rows.map((row) => { const cells = row.map((cell) => { if (typeof cell === "string") { return this.wrap("td", cell); } const { header, data, colspan, rowspan } = cell; const tag = header ? "th" : "td"; const attrs = Object.assign(Object.assign({}, colspan && { colspan }), rowspan && { rowspan }); return this.wrap(tag, data, attrs); }).join(""); return this.wrap("tr", cells); }).join(""); const element = this.wrap("table", tableBody); return this.addRaw(element).addEOL(); } /** * Adds a collapsable HTML details element to the summary buffer * * @param {string} label text for the closed state * @param {string} content collapsable content * * @returns {Summary} summary instance */ addDetails(label, content) { const element = this.wrap("details", this.wrap("summary", label) + content); return this.addRaw(element).addEOL(); } /** * Adds an HTML image tag to the summary buffer * * @param {string} src path to the image you to embed * @param {string} alt text description of the image * @param {SummaryImageOptions} options (optional) addition image attributes * * @returns {Summary} summary instance */ addImage(src, alt, options) { const { width, height } = options || {}; const attrs = Object.assign(Object.assign({}, width && { width }), height && { height }); const element = this.wrap("img", null, Object.assign({ src, alt }, attrs)); return this.addRaw(element).addEOL(); } /** * Adds an HTML section heading element * * @param {string} text heading text * @param {number | string} [level=1] (optional) the heading level, default: 1 * * @returns {Summary} summary instance */ addHeading(text, level) { const tag = `h${level}`; const allowedTag = ["h1", "h2", "h3", "h4", "h5", "h6"].includes(tag) ? tag : "h1"; const element = this.wrap(allowedTag, text); return this.addRaw(element).addEOL(); } /** * Adds an HTML thematic break (
) to the summary buffer * * @returns {Summary} summary instance */ addSeparator() { const element = this.wrap("hr", null); return this.addRaw(element).addEOL(); } /** * Adds an HTML line break (
) to the summary buffer * * @returns {Summary} summary instance */ addBreak() { const element = this.wrap("br", null); return this.addRaw(element).addEOL(); } /** * Adds an HTML blockquote to the summary buffer * * @param {string} text quote text * @param {string} cite (optional) citation url * * @returns {Summary} summary instance */ addQuote(text, cite) { const attrs = Object.assign({}, cite && { cite }); const element = this.wrap("blockquote", text, attrs); return this.addRaw(element).addEOL(); } /** * Adds an HTML anchor tag to the summary buffer * * @param {string} text link text/content * @param {string} href hyperlink * * @returns {Summary} summary instance */ addLink(text, href) { const element = this.wrap("a", text, { href }); return this.addRaw(element).addEOL(); } }; var _summary = new Summary(); // node_modules/@actions/core/lib/platform.js var import_os2 = __toESM(require("os"), 1); // node_modules/@actions/io/lib/io.js var import_assert = require("assert"); // node_modules/@actions/io/lib/io-util.js var fs2 = __toESM(require("fs"), 1); var { chmod, copyFile, lstat, mkdir, open, readdir, rename, rm, rmdir, stat, symlink, unlink } = fs2.promises; var IS_WINDOWS = process.platform === "win32"; var READONLY = fs2.constants.O_RDONLY; // node_modules/@actions/io/lib/io.js var __awaiter3 = function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; function rmRF(inputPath) { return __awaiter3(this, void 0, void 0, function* () { if (IS_WINDOWS) { if (/[*"<>|]/.test(inputPath)) { throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows'); } } try { yield rm(inputPath, { force: true, maxRetries: 3, recursive: true, retryDelay: 300 }); } catch (err) { throw new Error(`File was unable to be removed ${err}`); } }); } function mkdirP(fsPath) { return __awaiter3(this, void 0, void 0, function* () { (0, import_assert.ok)(fsPath, "a path argument must be provided"); yield mkdir(fsPath, { recursive: true }); }); } // node_modules/@actions/exec/lib/toolrunner.js var IS_WINDOWS2 = process.platform === "win32"; // node_modules/@actions/core/lib/platform.js var platform = import_os2.default.platform(); var arch = import_os2.default.arch(); // node_modules/@actions/core/lib/core.js var ExitCode; (function(ExitCode2) { ExitCode2[ExitCode2["Success"] = 0] = "Success"; ExitCode2[ExitCode2["Failure"] = 1] = "Failure"; })(ExitCode || (ExitCode = {})); function setOutput(name, value) { const filePath = process.env["GITHUB_OUTPUT"] || ""; if (filePath) { return issueFileCommand("OUTPUT", prepareKeyValueMessage(name, value)); } process.stdout.write(os4.EOL); issueCommand("set-output", { name }, toCommandValue(value)); } function debug(message) { issueCommand("debug", {}, message); } function info(message) { process.stdout.write(message + os4.EOL); } // node_modules/universal-user-agent/index.js function getUserAgent() { if (typeof navigator === "object" && "userAgent" in navigator) { return navigator.userAgent; } if (typeof process === "object" && process.version !== void 0) { return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; } return ""; } // node_modules/before-after-hook/lib/register.js function register(state, name, method, options) { if (typeof method !== "function") { throw new Error("method for before hook must be a function"); } if (!options) { options = {}; } if (Array.isArray(name)) { return name.reverse().reduce((callback, name2) => { return register.bind(null, state, name2, callback, options); }, method)(); } return Promise.resolve().then(() => { if (!state.registry[name]) { return method(options); } return state.registry[name].reduce((method2, registered) => { return registered.hook.bind(null, method2, options); }, method)(); }); } // node_modules/before-after-hook/lib/add.js function addHook(state, kind, name, hook2) { const orig = hook2; if (!state.registry[name]) { state.registry[name] = []; } if (kind === "before") { hook2 = (method, options) => { return Promise.resolve().then(orig.bind(null, options)).then(method.bind(null, options)); }; } if (kind === "after") { hook2 = (method, options) => { let result; return Promise.resolve().then(method.bind(null, options)).then((result_) => { result = result_; return orig(result, options); }).then(() => { return result; }); }; } if (kind === "error") { hook2 = (method, options) => { return Promise.resolve().then(method.bind(null, options)).catch((error) => { return orig(error, options); }); }; } state.registry[name].push({ hook: hook2, orig }); } // node_modules/before-after-hook/lib/remove.js function removeHook(state, name, method) { if (!state.registry[name]) { return; } const index = state.registry[name].map((registered) => { return registered.orig; }).indexOf(method); if (index === -1) { return; } state.registry[name].splice(index, 1); } // node_modules/before-after-hook/index.js var bind = Function.bind; var bindable = bind.bind(bind); function bindApi(hook2, state, name) { const removeHookRef = bindable(removeHook, null).apply( null, name ? [state, name] : [state] ); hook2.api = { remove: removeHookRef }; hook2.remove = removeHookRef; ["before", "error", "after", "wrap"].forEach((kind) => { const args = name ? [state, kind, name] : [state, kind]; hook2[kind] = hook2.api[kind] = bindable(addHook, null).apply(null, args); }); } function Singular() { const singularHookName = /* @__PURE__ */ Symbol("Singular"); const singularHookState = { registry: {} }; const singularHook = register.bind(null, singularHookState, singularHookName); bindApi(singularHook, singularHookState, singularHookName); return singularHook; } function Collection() { const state = { registry: {} }; const hook2 = register.bind(null, state); bindApi(hook2, state); return hook2; } var before_after_hook_default = { Singular, Collection }; // node_modules/@octokit/endpoint/dist-bundle/index.js var VERSION = "0.0.0-development"; var userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; var DEFAULTS = { method: "GET", baseUrl: "https://api.github.com", headers: { accept: "application/vnd.github.v3+json", "user-agent": userAgent }, mediaType: { format: "" } }; function lowercaseKeys2(object) { if (!object) { return {}; } return Object.keys(object).reduce((newObj, key) => { newObj[key.toLowerCase()] = object[key]; return newObj; }, {}); } function isPlainObject(value) { if (typeof value !== "object" || value === null) return false; if (Object.prototype.toString.call(value) !== "[object Object]") return false; const proto = Object.getPrototypeOf(value); if (proto === null) return true; const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } function mergeDeep(defaults, options) { const result = Object.assign({}, defaults); Object.keys(options).forEach((key) => { if (isPlainObject(options[key])) { if (!(key in defaults)) Object.assign(result, { [key]: options[key] }); else result[key] = mergeDeep(defaults[key], options[key]); } else { Object.assign(result, { [key]: options[key] }); } }); return result; } function removeUndefinedProperties(obj) { for (const key in obj) { if (obj[key] === void 0) { delete obj[key]; } } return obj; } function merge(defaults, route, options) { if (typeof route === "string") { let [method, url] = route.split(" "); options = Object.assign(url ? { method, url } : { url: method }, options); } else { options = Object.assign({}, route); } options.headers = lowercaseKeys2(options.headers); removeUndefinedProperties(options); removeUndefinedProperties(options.headers); const mergedOptions = mergeDeep(defaults || {}, options); if (options.url === "/graphql") { if (defaults && defaults.mediaType.previews?.length) { mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( (preview) => !mergedOptions.mediaType.previews.includes(preview) ).concat(mergedOptions.mediaType.previews); } mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, "")); } return mergedOptions; } function addQueryParameters(url, parameters) { const separator = /\?/.test(url) ? "&" : "?"; const names = Object.keys(parameters); if (names.length === 0) { return url; } return url + separator + names.map((name) => { if (name === "q") { return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); } return `${name}=${encodeURIComponent(parameters[name])}`; }).join("&"); } var urlVariableRegex = /\{[^{}}]+\}/g; function removeNonChars(variableName) { return variableName.replace(/(?:^\W+)|(?:(? a.concat(b), []); } function omit(object, keysToOmit) { const result = { __proto__: null }; for (const key of Object.keys(object)) { if (keysToOmit.indexOf(key) === -1) { result[key] = object[key]; } } return result; } function encodeReserved(str) { return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { if (!/%[0-9A-Fa-f]/.test(part)) { part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); } return part; }).join(""); } function encodeUnreserved(str) { return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { return "%" + c.charCodeAt(0).toString(16).toUpperCase(); }); } function encodeValue(operator, value, key) { value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); if (key) { return encodeUnreserved(key) + "=" + value; } else { return value; } } function isDefined(value) { return value !== void 0 && value !== null; } function isKeyOperator(operator) { return operator === ";" || operator === "&" || operator === "?"; } function getValues(context, operator, key, modifier) { var value = context[key], result = []; if (isDefined(value) && value !== "") { if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { value = value.toString(); if (modifier && modifier !== "*") { value = value.substring(0, parseInt(modifier, 10)); } result.push( encodeValue(operator, value, isKeyOperator(operator) ? key : "") ); } else { if (modifier === "*") { if (Array.isArray(value)) { value.filter(isDefined).forEach(function(value2) { result.push( encodeValue(operator, value2, isKeyOperator(operator) ? key : "") ); }); } else { Object.keys(value).forEach(function(k) { if (isDefined(value[k])) { result.push(encodeValue(operator, value[k], k)); } }); } } else { const tmp = []; if (Array.isArray(value)) { value.filter(isDefined).forEach(function(value2) { tmp.push(encodeValue(operator, value2)); }); } else { Object.keys(value).forEach(function(k) { if (isDefined(value[k])) { tmp.push(encodeUnreserved(k)); tmp.push(encodeValue(operator, value[k].toString())); } }); } if (isKeyOperator(operator)) { result.push(encodeUnreserved(key) + "=" + tmp.join(",")); } else if (tmp.length !== 0) { result.push(tmp.join(",")); } } } } else { if (operator === ";") { if (isDefined(value)) { result.push(encodeUnreserved(key)); } } else if (value === "" && (operator === "&" || operator === "?")) { result.push(encodeUnreserved(key) + "="); } else if (value === "") { result.push(""); } } return result; } function parseUrl(template) { return { expand: expand.bind(null, template) }; } function expand(template, context) { var operators = ["+", "#", ".", "/", ";", "?", "&"]; template = template.replace( /\{([^\{\}]+)\}|([^\{\}]+)/g, function(_, expression, literal) { if (expression) { let operator = ""; const values = []; if (operators.indexOf(expression.charAt(0)) !== -1) { operator = expression.charAt(0); expression = expression.substr(1); } expression.split(/,/g).forEach(function(variable) { var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); }); if (operator && operator !== "+") { var separator = ","; if (operator === "?") { separator = "&"; } else if (operator !== "#") { separator = operator; } return (values.length !== 0 ? operator : "") + values.join(separator); } else { return values.join(","); } } else { return encodeReserved(literal); } } ); if (template === "/") { return template; } else { return template.replace(/\/$/, ""); } } function parse(options) { let method = options.method.toUpperCase(); let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); let headers = Object.assign({}, options.headers); let body; let parameters = omit(options, [ "method", "baseUrl", "url", "headers", "request", "mediaType" ]); const urlVariableNames = extractUrlVariableNames(url); url = parseUrl(url).expand(parameters); if (!/^http/.test(url)) { url = options.baseUrl + url; } const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); const remainingParameters = omit(parameters, omittedParameters); const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); if (!isBinaryRequest) { if (options.mediaType.format) { headers.accept = headers.accept.split(/,/).map( (format) => format.replace( /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}` ) ).join(","); } if (url.endsWith("/graphql")) { if (options.mediaType.previews?.length) { const previewsFromAcceptHeader = headers.accept.match(/(? { const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; return `application/vnd.github.${preview}-preview${format}`; }).join(","); } } } if (["GET", "HEAD"].includes(method)) { url = addQueryParameters(url, remainingParameters); } else { if ("data" in remainingParameters) { body = remainingParameters.data; } else { if (Object.keys(remainingParameters).length) { body = remainingParameters; } } } if (!headers["content-type"] && typeof body !== "undefined") { headers["content-type"] = "application/json; charset=utf-8"; } if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { body = ""; } return Object.assign( { method, url, headers }, typeof body !== "undefined" ? { body } : null, options.request ? { request: options.request } : null ); } function endpointWithDefaults(defaults, route, options) { return parse(merge(defaults, route, options)); } function withDefaults(oldDefaults, newDefaults) { const DEFAULTS2 = merge(oldDefaults, newDefaults); const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2); return Object.assign(endpoint2, { DEFAULTS: DEFAULTS2, defaults: withDefaults.bind(null, DEFAULTS2), merge: merge.bind(null, DEFAULTS2), parse }); } var endpoint = withDefaults(null, DEFAULTS); // node_modules/@octokit/request/dist-bundle/index.js var import_fast_content_type_parse = __toESM(require_fast_content_type_parse(), 1); // node_modules/@octokit/request-error/dist-src/index.js var RequestError = class extends Error { name; /** * http status code */ status; /** * Request options that lead to the error. */ request; /** * Response object if a response was received */ response; constructor(message, statusCode, options) { super(message); this.name = "HttpError"; this.status = Number.parseInt(statusCode); if (Number.isNaN(this.status)) { this.status = 0; } if ("response" in options) { this.response = options.response; } const requestCopy = Object.assign({}, options.request); if (options.request.headers.authorization) { requestCopy.headers = Object.assign({}, options.request.headers, { authorization: options.request.headers.authorization.replace( /(? [ name, String(value) ]) ); let fetchResponse; try { fetchResponse = await fetch(requestOptions.url, { method: requestOptions.method, body, redirect: requestOptions.request?.redirect, headers: requestHeaders, signal: requestOptions.request?.signal, // duplex must be set if request.body is ReadableStream or Async Iterables. // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex. ...requestOptions.body && { duplex: "half" } }); } catch (error) { let message = "Unknown Error"; if (error instanceof Error) { if (error.name === "AbortError") { error.status = 500; throw error; } message = error.message; if (error.name === "TypeError" && "cause" in error) { if (error.cause instanceof Error) { message = error.cause.message; } else if (typeof error.cause === "string") { message = error.cause; } } } const requestError = new RequestError(message, 500, { request: requestOptions }); requestError.cause = error; throw requestError; } const status = fetchResponse.status; const url = fetchResponse.url; const responseHeaders = {}; for (const [key, value] of fetchResponse.headers) { responseHeaders[key] = value; } const octokitResponse = { url, status, headers: responseHeaders, data: "" }; if ("deprecation" in responseHeaders) { const matches = responseHeaders.link && responseHeaders.link.match(/<([^<>]+)>; rel="deprecation"/); const deprecationLink = matches && matches.pop(); log.warn( `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${responseHeaders.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` ); } if (status === 204 || status === 205) { return octokitResponse; } if (requestOptions.method === "HEAD") { if (status < 400) { return octokitResponse; } throw new RequestError(fetchResponse.statusText, status, { response: octokitResponse, request: requestOptions }); } if (status === 304) { octokitResponse.data = await getResponseData(fetchResponse); throw new RequestError("Not modified", status, { response: octokitResponse, request: requestOptions }); } if (status >= 400) { octokitResponse.data = await getResponseData(fetchResponse); throw new RequestError(toErrorMessage(octokitResponse.data), status, { response: octokitResponse, request: requestOptions }); } octokitResponse.data = parseSuccessResponseBody ? await getResponseData(fetchResponse) : fetchResponse.body; return octokitResponse; } async function getResponseData(response) { const contentType = response.headers.get("content-type"); if (!contentType) { return response.text().catch(() => ""); } const mimetype = (0, import_fast_content_type_parse.safeParse)(contentType); if (isJSONResponse(mimetype)) { let text = ""; try { text = await response.text(); return JSON.parse(text); } catch (err) { return text; } } else if (mimetype.type.startsWith("text/") || mimetype.parameters.charset?.toLowerCase() === "utf-8") { return response.text().catch(() => ""); } else { return response.arrayBuffer().catch(() => new ArrayBuffer(0)); } } function isJSONResponse(mimetype) { return mimetype.type === "application/json" || mimetype.type === "application/scim+json"; } function toErrorMessage(data) { if (typeof data === "string") { return data; } if (data instanceof ArrayBuffer) { return "Unknown error"; } if ("message" in data) { const suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : ""; return Array.isArray(data.errors) ? `${data.message}: ${data.errors.map((v) => JSON.stringify(v)).join(", ")}${suffix}` : `${data.message}${suffix}`; } return `Unknown error: ${JSON.stringify(data)}`; } function withDefaults2(oldEndpoint, newDefaults) { const endpoint2 = oldEndpoint.defaults(newDefaults); const newApi = function(route, parameters) { const endpointOptions = endpoint2.merge(route, parameters); if (!endpointOptions.request || !endpointOptions.request.hook) { return fetchWrapper(endpoint2.parse(endpointOptions)); } const request2 = (route2, parameters2) => { return fetchWrapper( endpoint2.parse(endpoint2.merge(route2, parameters2)) ); }; Object.assign(request2, { endpoint: endpoint2, defaults: withDefaults2.bind(null, endpoint2) }); return endpointOptions.request.hook(request2, endpointOptions); }; return Object.assign(newApi, { endpoint: endpoint2, defaults: withDefaults2.bind(null, endpoint2) }); } var request = withDefaults2(endpoint, defaults_default); // node_modules/@octokit/graphql/dist-bundle/index.js var VERSION3 = "0.0.0-development"; function _buildMessageForResponseErrors(data) { return `Request failed due to following response errors: ` + data.errors.map((e) => ` - ${e.message}`).join("\n"); } var GraphqlResponseError = class extends Error { constructor(request2, headers, response) { super(_buildMessageForResponseErrors(response)); this.request = request2; this.headers = headers; this.response = response; this.errors = response.errors; this.data = response.data; if (Error.captureStackTrace) { Error.captureStackTrace(this, this.constructor); } } name = "GraphqlResponseError"; errors; data; }; var NON_VARIABLE_OPTIONS = [ "method", "baseUrl", "url", "headers", "request", "query", "mediaType", "operationName" ]; var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; function graphql(request2, query, options) { if (options) { if (typeof query === "string" && "query" in options) { return Promise.reject( new Error(`[@octokit/graphql] "query" cannot be used as variable name`) ); } for (const key in options) { if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue; return Promise.reject( new Error( `[@octokit/graphql] "${key}" cannot be used as variable name` ) ); } } const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; const requestOptions = Object.keys( parsedOptions ).reduce((result, key) => { if (NON_VARIABLE_OPTIONS.includes(key)) { result[key] = parsedOptions[key]; return result; } if (!result.variables) { result.variables = {}; } result.variables[key] = parsedOptions[key]; return result; }, {}); const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); } return request2(requestOptions).then((response) => { if (response.data.errors) { const headers = {}; for (const key of Object.keys(response.headers)) { headers[key] = response.headers[key]; } throw new GraphqlResponseError( requestOptions, headers, response.data ); } return response.data.data; }); } function withDefaults3(request2, newDefaults) { const newRequest = request2.defaults(newDefaults); const newApi = (query, options) => { return graphql(newRequest, query, options); }; return Object.assign(newApi, { defaults: withDefaults3.bind(null, newRequest), endpoint: newRequest.endpoint }); } var graphql2 = withDefaults3(request, { headers: { "user-agent": `octokit-graphql.js/${VERSION3} ${getUserAgent()}` }, method: "POST", url: "/graphql" }); function withCustomRequest(customRequest) { return withDefaults3(customRequest, { method: "POST", url: "/graphql" }); } // node_modules/@octokit/auth-token/dist-bundle/index.js var b64url = "(?:[a-zA-Z0-9_-]+)"; var sep = "\\."; var jwtRE = new RegExp(`^${b64url}${sep}${b64url}${sep}${b64url}$`); var isJWT = jwtRE.test.bind(jwtRE); async function auth(token) { const isApp = isJWT(token); const isInstallation = token.startsWith("v1.") || token.startsWith("ghs_"); const isUserToServer = token.startsWith("ghu_"); const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; return { type: "token", token, tokenType }; } function withAuthorizationPrefix(token) { if (token.split(/\./).length === 3) { return `bearer ${token}`; } return `token ${token}`; } async function hook(token, request2, route, parameters) { const endpoint2 = request2.endpoint.merge( route, parameters ); endpoint2.headers.authorization = withAuthorizationPrefix(token); return request2(endpoint2); } var createTokenAuth = function createTokenAuth2(token) { if (!token) { throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); } if (typeof token !== "string") { throw new Error( "[@octokit/auth-token] Token passed to createTokenAuth is not a string" ); } token = token.replace(/^(token|bearer) +/i, ""); return Object.assign(auth.bind(null, token), { hook: hook.bind(null, token) }); }; // node_modules/@octokit/core/dist-src/version.js var VERSION4 = "7.0.3"; // node_modules/@octokit/core/dist-src/index.js var noop = () => { }; var consoleWarn = console.warn.bind(console); var consoleError = console.error.bind(console); function createLogger(logger = {}) { if (typeof logger.debug !== "function") { logger.debug = noop; } if (typeof logger.info !== "function") { logger.info = noop; } if (typeof logger.warn !== "function") { logger.warn = consoleWarn; } if (typeof logger.error !== "function") { logger.error = consoleError; } return logger; } var userAgentTrail = `octokit-core.js/${VERSION4} ${getUserAgent()}`; var Octokit = class { static VERSION = VERSION4; static defaults(defaults) { const OctokitWithDefaults = class extends this { constructor(...args) { const options = args[0] || {}; if (typeof defaults === "function") { super(defaults(options)); return; } super( Object.assign( {}, defaults, options, options.userAgent && defaults.userAgent ? { userAgent: `${options.userAgent} ${defaults.userAgent}` } : null ) ); } }; return OctokitWithDefaults; } static plugins = []; /** * Attach a plugin (or many) to your Octokit instance. * * @example * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) */ static plugin(...newPlugins) { const currentPlugins = this.plugins; const NewOctokit = class extends this { static plugins = currentPlugins.concat( newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) ); }; return NewOctokit; } constructor(options = {}) { const hook2 = new before_after_hook_default.Collection(); const requestDefaults = { baseUrl: request.endpoint.DEFAULTS.baseUrl, headers: {}, request: Object.assign({}, options.request, { // @ts-ignore internal usage only, no need to type hook: hook2.bind(null, "request") }), mediaType: { previews: [], format: "" } }; requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; if (options.baseUrl) { requestDefaults.baseUrl = options.baseUrl; } if (options.previews) { requestDefaults.mediaType.previews = options.previews; } if (options.timeZone) { requestDefaults.headers["time-zone"] = options.timeZone; } this.request = request.defaults(requestDefaults); this.graphql = withCustomRequest(this.request).defaults(requestDefaults); this.log = createLogger(options.log); this.hook = hook2; if (!options.authStrategy) { if (!options.auth) { this.auth = async () => ({ type: "unauthenticated" }); } else { const auth2 = createTokenAuth(options.auth); hook2.wrap("request", auth2.hook); this.auth = auth2; } } else { const { authStrategy, ...otherOptions } = options; const auth2 = authStrategy( Object.assign( { request: this.request, log: this.log, // we pass the current octokit instance as well as its constructor options // to allow for authentication strategies that return a new octokit instance // that shares the same internal state as the current one. The original // requirement for this was the "event-octokit" authentication strategy // of https://github.com/probot/octokit-auth-probot. octokit: this, octokitOptions: otherOptions }, options.auth ) ); hook2.wrap("request", auth2.hook); this.auth = auth2; } const classConstructor = this.constructor; for (let i = 0; i < classConstructor.plugins.length; ++i) { Object.assign(this, classConstructor.plugins[i](this, options)); } } // assigned during constructor request; graphql; log; hook; // TODO: type `octokit.auth` based on passed options.authStrategy auth; }; // node_modules/@octokit/plugin-paginate-rest/dist-bundle/index.js var VERSION5 = "0.0.0-development"; function normalizePaginatedListResponse(response) { if (!response.data) { return { ...response, data: [] }; } const responseNeedsNormalization = ("total_count" in response.data || "total_commits" in response.data) && !("url" in response.data); if (!responseNeedsNormalization) return response; const incompleteResults = response.data.incomplete_results; const repositorySelection = response.data.repository_selection; const totalCount = response.data.total_count; const totalCommits = response.data.total_commits; delete response.data.incomplete_results; delete response.data.repository_selection; delete response.data.total_count; delete response.data.total_commits; const namespaceKey = Object.keys(response.data)[0]; const data = response.data[namespaceKey]; response.data = data; if (typeof incompleteResults !== "undefined") { response.data.incomplete_results = incompleteResults; } if (typeof repositorySelection !== "undefined") { response.data.repository_selection = repositorySelection; } response.data.total_count = totalCount; response.data.total_commits = totalCommits; return response; } function iterator(octokit, route, parameters) { const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); const requestMethod = typeof route === "function" ? route : octokit.request; const method = options.method; const headers = options.headers; let url = options.url; return { [Symbol.asyncIterator]: () => ({ async next() { if (!url) return { done: true }; try { const response = await requestMethod({ method, url, headers }); const normalizedResponse = normalizePaginatedListResponse(response); url = ((normalizedResponse.headers.link || "").match( /<([^<>]+)>;\s*rel="next"/ ) || [])[1]; if (!url && "total_commits" in normalizedResponse.data) { const parsedUrl = new URL(normalizedResponse.url); const params = parsedUrl.searchParams; const page = parseInt(params.get("page") || "1", 10); const per_page = parseInt(params.get("per_page") || "250", 10); if (page * per_page < normalizedResponse.data.total_commits) { params.set("page", String(page + 1)); url = parsedUrl.toString(); } } return { value: normalizedResponse }; } catch (error) { if (error.status !== 409) throw error; url = ""; return { value: { status: 200, headers: {}, data: [] } }; } } }) }; } function paginate(octokit, route, parameters, mapFn) { if (typeof parameters === "function") { mapFn = parameters; parameters = void 0; } return gather( octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn ); } function gather(octokit, results, iterator2, mapFn) { return iterator2.next().then((result) => { if (result.done) { return results; } let earlyExit = false; function done() { earlyExit = true; } results = results.concat( mapFn ? mapFn(result.value, done) : result.value.data ); if (earlyExit) { return results; } return gather(octokit, results, iterator2, mapFn); }); } var composePaginateRest = Object.assign(paginate, { iterator }); function paginateRest(octokit) { return { paginate: Object.assign(paginate.bind(null, octokit), { iterator: iterator.bind(null, octokit) }) }; } paginateRest.VERSION = VERSION5; // node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js var VERSION6 = "16.0.0"; // node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js var Endpoints = { actions: { addCustomLabelsToSelfHostedRunnerForOrg: [ "POST /orgs/{org}/actions/runners/{runner_id}/labels" ], addCustomLabelsToSelfHostedRunnerForRepo: [ "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" ], addRepoAccessToSelfHostedRunnerGroupInOrg: [ "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}" ], addSelectedRepoToOrgSecret: [ "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" ], addSelectedRepoToOrgVariable: [ "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" ], approveWorkflowRun: [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" ], cancelWorkflowRun: [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" ], createEnvironmentVariable: [ "POST /repos/{owner}/{repo}/environments/{environment_name}/variables" ], createHostedRunnerForOrg: ["POST /orgs/{org}/actions/hosted-runners"], createOrUpdateEnvironmentSecret: [ "PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" ], createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], createOrUpdateRepoSecret: [ "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" ], createOrgVariable: ["POST /orgs/{org}/actions/variables"], createRegistrationTokenForOrg: [ "POST /orgs/{org}/actions/runners/registration-token" ], createRegistrationTokenForRepo: [ "POST /repos/{owner}/{repo}/actions/runners/registration-token" ], createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], createRemoveTokenForRepo: [ "POST /repos/{owner}/{repo}/actions/runners/remove-token" ], createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"], createWorkflowDispatch: [ "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" ], deleteActionsCacheById: [ "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}" ], deleteActionsCacheByKey: [ "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}" ], deleteArtifact: [ "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" ], deleteEnvironmentSecret: [ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" ], deleteEnvironmentVariable: [ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" ], deleteHostedRunnerForOrg: [ "DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}" ], deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"], deleteRepoSecret: [ "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" ], deleteRepoVariable: [ "DELETE /repos/{owner}/{repo}/actions/variables/{name}" ], deleteSelfHostedRunnerFromOrg: [ "DELETE /orgs/{org}/actions/runners/{runner_id}" ], deleteSelfHostedRunnerFromRepo: [ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" ], deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], deleteWorkflowRunLogs: [ "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" ], disableSelectedRepositoryGithubActionsOrganization: [ "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" ], disableWorkflow: [ "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" ], downloadArtifact: [ "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" ], downloadJobLogsForWorkflowRun: [ "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" ], downloadWorkflowRunAttemptLogs: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" ], downloadWorkflowRunLogs: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" ], enableSelectedRepositoryGithubActionsOrganization: [ "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" ], enableWorkflow: [ "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" ], forceCancelWorkflowRun: [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel" ], generateRunnerJitconfigForOrg: [ "POST /orgs/{org}/actions/runners/generate-jitconfig" ], generateRunnerJitconfigForRepo: [ "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig" ], getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], getActionsCacheUsageByRepoForOrg: [ "GET /orgs/{org}/actions/cache/usage-by-repository" ], getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], getAllowedActionsOrganization: [ "GET /orgs/{org}/actions/permissions/selected-actions" ], getAllowedActionsRepository: [ "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" ], getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], getCustomOidcSubClaimForRepo: [ "GET /repos/{owner}/{repo}/actions/oidc/customization/sub" ], getEnvironmentPublicKey: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key" ], getEnvironmentSecret: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" ], getEnvironmentVariable: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" ], getGithubActionsDefaultWorkflowPermissionsOrganization: [ "GET /orgs/{org}/actions/permissions/workflow" ], getGithubActionsDefaultWorkflowPermissionsRepository: [ "GET /repos/{owner}/{repo}/actions/permissions/workflow" ], getGithubActionsPermissionsOrganization: [ "GET /orgs/{org}/actions/permissions" ], getGithubActionsPermissionsRepository: [ "GET /repos/{owner}/{repo}/actions/permissions" ], getHostedRunnerForOrg: [ "GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}" ], getHostedRunnersGithubOwnedImagesForOrg: [ "GET /orgs/{org}/actions/hosted-runners/images/github-owned" ], getHostedRunnersLimitsForOrg: [ "GET /orgs/{org}/actions/hosted-runners/limits" ], getHostedRunnersMachineSpecsForOrg: [ "GET /orgs/{org}/actions/hosted-runners/machine-sizes" ], getHostedRunnersPartnerImagesForOrg: [ "GET /orgs/{org}/actions/hosted-runners/images/partner" ], getHostedRunnersPlatformsForOrg: [ "GET /orgs/{org}/actions/hosted-runners/platforms" ], getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"], getPendingDeploymentsForRun: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" ], getRepoPermissions: [ "GET /repos/{owner}/{repo}/actions/permissions", {}, { renamed: ["actions", "getGithubActionsPermissionsRepository"] } ], getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], getReviewsForRun: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" ], getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], getSelfHostedRunnerForRepo: [ "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" ], getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], getWorkflowAccessToRepository: [ "GET /repos/{owner}/{repo}/actions/permissions/access" ], getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], getWorkflowRunAttempt: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" ], getWorkflowRunUsage: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" ], getWorkflowUsage: [ "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" ], listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], listEnvironmentSecrets: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets" ], listEnvironmentVariables: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/variables" ], listGithubHostedRunnersInGroupForOrg: [ "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners" ], listHostedRunnersForOrg: ["GET /orgs/{org}/actions/hosted-runners"], listJobsForWorkflowRun: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" ], listJobsForWorkflowRunAttempt: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" ], listLabelsForSelfHostedRunnerForOrg: [ "GET /orgs/{org}/actions/runners/{runner_id}/labels" ], listLabelsForSelfHostedRunnerForRepo: [ "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" ], listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], listOrgVariables: ["GET /orgs/{org}/actions/variables"], listRepoOrganizationSecrets: [ "GET /repos/{owner}/{repo}/actions/organization-secrets" ], listRepoOrganizationVariables: [ "GET /repos/{owner}/{repo}/actions/organization-variables" ], listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], listRunnerApplicationsForRepo: [ "GET /repos/{owner}/{repo}/actions/runners/downloads" ], listSelectedReposForOrgSecret: [ "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" ], listSelectedReposForOrgVariable: [ "GET /orgs/{org}/actions/variables/{name}/repositories" ], listSelectedRepositoriesEnabledGithubActionsOrganization: [ "GET /orgs/{org}/actions/permissions/repositories" ], listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], listWorkflowRunArtifacts: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" ], listWorkflowRuns: [ "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" ], listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], reRunJobForWorkflowRun: [ "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" ], reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], reRunWorkflowFailedJobs: [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs" ], removeAllCustomLabelsFromSelfHostedRunnerForOrg: [ "DELETE /orgs/{org}/actions/runners/{runner_id}/labels" ], removeAllCustomLabelsFromSelfHostedRunnerForRepo: [ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" ], removeCustomLabelFromSelfHostedRunnerForOrg: [ "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}" ], removeCustomLabelFromSelfHostedRunnerForRepo: [ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}" ], removeSelectedRepoFromOrgSecret: [ "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" ], removeSelectedRepoFromOrgVariable: [ "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" ], reviewCustomGatesForRun: [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule" ], reviewPendingDeploymentsForRun: [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" ], setAllowedActionsOrganization: [ "PUT /orgs/{org}/actions/permissions/selected-actions" ], setAllowedActionsRepository: [ "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" ], setCustomLabelsForSelfHostedRunnerForOrg: [ "PUT /orgs/{org}/actions/runners/{runner_id}/labels" ], setCustomLabelsForSelfHostedRunnerForRepo: [ "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" ], setCustomOidcSubClaimForRepo: [ "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub" ], setGithubActionsDefaultWorkflowPermissionsOrganization: [ "PUT /orgs/{org}/actions/permissions/workflow" ], setGithubActionsDefaultWorkflowPermissionsRepository: [ "PUT /repos/{owner}/{repo}/actions/permissions/workflow" ], setGithubActionsPermissionsOrganization: [ "PUT /orgs/{org}/actions/permissions" ], setGithubActionsPermissionsRepository: [ "PUT /repos/{owner}/{repo}/actions/permissions" ], setSelectedReposForOrgSecret: [ "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" ], setSelectedReposForOrgVariable: [ "PUT /orgs/{org}/actions/variables/{name}/repositories" ], setSelectedRepositoriesEnabledGithubActionsOrganization: [ "PUT /orgs/{org}/actions/permissions/repositories" ], setWorkflowAccessToRepository: [ "PUT /repos/{owner}/{repo}/actions/permissions/access" ], updateEnvironmentVariable: [ "PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" ], updateHostedRunnerForOrg: [ "PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}" ], updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"], updateRepoVariable: [ "PATCH /repos/{owner}/{repo}/actions/variables/{name}" ] }, activity: { checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], deleteThreadSubscription: [ "DELETE /notifications/threads/{thread_id}/subscription" ], getFeeds: ["GET /feeds"], getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], getThread: ["GET /notifications/threads/{thread_id}"], getThreadSubscriptionForAuthenticatedUser: [ "GET /notifications/threads/{thread_id}/subscription" ], listEventsForAuthenticatedUser: ["GET /users/{username}/events"], listNotificationsForAuthenticatedUser: ["GET /notifications"], listOrgEventsForAuthenticatedUser: [ "GET /users/{username}/events/orgs/{org}" ], listPublicEvents: ["GET /events"], listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], listPublicEventsForUser: ["GET /users/{username}/events/public"], listPublicOrgEvents: ["GET /orgs/{org}/events"], listReceivedEventsForUser: ["GET /users/{username}/received_events"], listReceivedPublicEventsForUser: [ "GET /users/{username}/received_events/public" ], listRepoEvents: ["GET /repos/{owner}/{repo}/events"], listRepoNotificationsForAuthenticatedUser: [ "GET /repos/{owner}/{repo}/notifications" ], listReposStarredByAuthenticatedUser: ["GET /user/starred"], listReposStarredByUser: ["GET /users/{username}/starred"], listReposWatchedByUser: ["GET /users/{username}/subscriptions"], listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], markNotificationsAsRead: ["PUT /notifications"], markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"], markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], setThreadSubscription: [ "PUT /notifications/threads/{thread_id}/subscription" ], starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] }, apps: { addRepoToInstallation: [ "PUT /user/installations/{installation_id}/repositories/{repository_id}", {}, { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] } ], addRepoToInstallationForAuthenticatedUser: [ "PUT /user/installations/{installation_id}/repositories/{repository_id}" ], checkToken: ["POST /applications/{client_id}/token"], createFromManifest: ["POST /app-manifests/{code}/conversions"], createInstallationAccessToken: [ "POST /app/installations/{installation_id}/access_tokens" ], deleteAuthorization: ["DELETE /applications/{client_id}/grant"], deleteInstallation: ["DELETE /app/installations/{installation_id}"], deleteToken: ["DELETE /applications/{client_id}/token"], getAuthenticated: ["GET /app"], getBySlug: ["GET /apps/{app_slug}"], getInstallation: ["GET /app/installations/{installation_id}"], getOrgInstallation: ["GET /orgs/{org}/installation"], getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], getSubscriptionPlanForAccount: [ "GET /marketplace_listing/accounts/{account_id}" ], getSubscriptionPlanForAccountStubbed: [ "GET /marketplace_listing/stubbed/accounts/{account_id}" ], getUserInstallation: ["GET /users/{username}/installation"], getWebhookConfigForApp: ["GET /app/hook/config"], getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], listAccountsForPlanStubbed: [ "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" ], listInstallationReposForAuthenticatedUser: [ "GET /user/installations/{installation_id}/repositories" ], listInstallationRequestsForAuthenticatedApp: [ "GET /app/installation-requests" ], listInstallations: ["GET /app/installations"], listInstallationsForAuthenticatedUser: ["GET /user/installations"], listPlans: ["GET /marketplace_listing/plans"], listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], listReposAccessibleToInstallation: ["GET /installation/repositories"], listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], listSubscriptionsForAuthenticatedUserStubbed: [ "GET /user/marketplace_purchases/stubbed" ], listWebhookDeliveries: ["GET /app/hook/deliveries"], redeliverWebhookDelivery: [ "POST /app/hook/deliveries/{delivery_id}/attempts" ], removeRepoFromInstallation: [ "DELETE /user/installations/{installation_id}/repositories/{repository_id}", {}, { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] } ], removeRepoFromInstallationForAuthenticatedUser: [ "DELETE /user/installations/{installation_id}/repositories/{repository_id}" ], resetToken: ["PATCH /applications/{client_id}/token"], revokeInstallationAccessToken: ["DELETE /installation/token"], scopeToken: ["POST /applications/{client_id}/token/scoped"], suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], unsuspendInstallation: [ "DELETE /app/installations/{installation_id}/suspended" ], updateWebhookConfigForApp: ["PATCH /app/hook/config"] }, billing: { getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], getGithubActionsBillingUser: [ "GET /users/{username}/settings/billing/actions" ], getGithubBillingUsageReportOrg: [ "GET /organizations/{org}/settings/billing/usage" ], getGithubBillingUsageReportUser: [ "GET /users/{username}/settings/billing/usage" ], getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], getGithubPackagesBillingUser: [ "GET /users/{username}/settings/billing/packages" ], getSharedStorageBillingOrg: [ "GET /orgs/{org}/settings/billing/shared-storage" ], getSharedStorageBillingUser: [ "GET /users/{username}/settings/billing/shared-storage" ] }, campaigns: { createCampaign: ["POST /orgs/{org}/campaigns"], deleteCampaign: ["DELETE /orgs/{org}/campaigns/{campaign_number}"], getCampaignSummary: ["GET /orgs/{org}/campaigns/{campaign_number}"], listOrgCampaigns: ["GET /orgs/{org}/campaigns"], updateCampaign: ["PATCH /orgs/{org}/campaigns/{campaign_number}"] }, checks: { create: ["POST /repos/{owner}/{repo}/check-runs"], createSuite: ["POST /repos/{owner}/{repo}/check-suites"], get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], listAnnotations: [ "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" ], listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], listForSuite: [ "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" ], listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], rerequestRun: [ "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" ], rerequestSuite: [ "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" ], setSuitesPreferences: [ "PATCH /repos/{owner}/{repo}/check-suites/preferences" ], update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] }, codeScanning: { commitAutofix: [ "POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits" ], createAutofix: [ "POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix" ], createVariantAnalysis: [ "POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses" ], deleteAnalysis: [ "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" ], deleteCodeqlDatabase: [ "DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" ], getAlert: [ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", {}, { renamedParameters: { alert_id: "alert_number" } } ], getAnalysis: [ "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" ], getAutofix: [ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix" ], getCodeqlDatabase: [ "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" ], getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"], getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], getVariantAnalysis: [ "GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}" ], getVariantAnalysisRepoTask: [ "GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}" ], listAlertInstances: [ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" ], listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], listAlertsInstances: [ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", {}, { renamed: ["codeScanning", "listAlertInstances"] } ], listCodeqlDatabases: [ "GET /repos/{owner}/{repo}/code-scanning/codeql/databases" ], listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], updateAlert: [ "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" ], updateDefaultSetup: [ "PATCH /repos/{owner}/{repo}/code-scanning/default-setup" ], uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] }, codeSecurity: { attachConfiguration: [ "POST /orgs/{org}/code-security/configurations/{configuration_id}/attach" ], attachEnterpriseConfiguration: [ "POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach" ], createConfiguration: ["POST /orgs/{org}/code-security/configurations"], createConfigurationForEnterprise: [ "POST /enterprises/{enterprise}/code-security/configurations" ], deleteConfiguration: [ "DELETE /orgs/{org}/code-security/configurations/{configuration_id}" ], deleteConfigurationForEnterprise: [ "DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}" ], detachConfiguration: [ "DELETE /orgs/{org}/code-security/configurations/detach" ], getConfiguration: [ "GET /orgs/{org}/code-security/configurations/{configuration_id}" ], getConfigurationForRepository: [ "GET /repos/{owner}/{repo}/code-security-configuration" ], getConfigurationsForEnterprise: [ "GET /enterprises/{enterprise}/code-security/configurations" ], getConfigurationsForOrg: ["GET /orgs/{org}/code-security/configurations"], getDefaultConfigurations: [ "GET /orgs/{org}/code-security/configurations/defaults" ], getDefaultConfigurationsForEnterprise: [ "GET /enterprises/{enterprise}/code-security/configurations/defaults" ], getRepositoriesForConfiguration: [ "GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories" ], getRepositoriesForEnterpriseConfiguration: [ "GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories" ], getSingleConfigurationForEnterprise: [ "GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}" ], setConfigurationAsDefault: [ "PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults" ], setConfigurationAsDefaultForEnterprise: [ "PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults" ], updateConfiguration: [ "PATCH /orgs/{org}/code-security/configurations/{configuration_id}" ], updateEnterpriseConfiguration: [ "PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}" ] }, codesOfConduct: { getAllCodesOfConduct: ["GET /codes_of_conduct"], getConductCode: ["GET /codes_of_conduct/{key}"] }, codespaces: { addRepositoryForSecretForAuthenticatedUser: [ "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" ], addSelectedRepoToOrgSecret: [ "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" ], checkPermissionsForDevcontainer: [ "GET /repos/{owner}/{repo}/codespaces/permissions_check" ], codespaceMachinesForAuthenticatedUser: [ "GET /user/codespaces/{codespace_name}/machines" ], createForAuthenticatedUser: ["POST /user/codespaces"], createOrUpdateOrgSecret: [ "PUT /orgs/{org}/codespaces/secrets/{secret_name}" ], createOrUpdateRepoSecret: [ "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" ], createOrUpdateSecretForAuthenticatedUser: [ "PUT /user/codespaces/secrets/{secret_name}" ], createWithPrForAuthenticatedUser: [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces" ], createWithRepoForAuthenticatedUser: [ "POST /repos/{owner}/{repo}/codespaces" ], deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], deleteFromOrganization: [ "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}" ], deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"], deleteRepoSecret: [ "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" ], deleteSecretForAuthenticatedUser: [ "DELETE /user/codespaces/secrets/{secret_name}" ], exportForAuthenticatedUser: [ "POST /user/codespaces/{codespace_name}/exports" ], getCodespacesForUserInOrg: [ "GET /orgs/{org}/members/{username}/codespaces" ], getExportDetailsForAuthenticatedUser: [ "GET /user/codespaces/{codespace_name}/exports/{export_id}" ], getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"], getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"], getPublicKeyForAuthenticatedUser: [ "GET /user/codespaces/secrets/public-key" ], getRepoPublicKey: [ "GET /repos/{owner}/{repo}/codespaces/secrets/public-key" ], getRepoSecret: [ "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" ], getSecretForAuthenticatedUser: [ "GET /user/codespaces/secrets/{secret_name}" ], listDevcontainersInRepositoryForAuthenticatedUser: [ "GET /repos/{owner}/{repo}/codespaces/devcontainers" ], listForAuthenticatedUser: ["GET /user/codespaces"], listInOrganization: [ "GET /orgs/{org}/codespaces", {}, { renamedParameters: { org_id: "org" } } ], listInRepositoryForAuthenticatedUser: [ "GET /repos/{owner}/{repo}/codespaces" ], listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"], listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], listRepositoriesForSecretForAuthenticatedUser: [ "GET /user/codespaces/secrets/{secret_name}/repositories" ], listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], listSelectedReposForOrgSecret: [ "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories" ], preFlightWithRepoForAuthenticatedUser: [ "GET /repos/{owner}/{repo}/codespaces/new" ], publishForAuthenticatedUser: [ "POST /user/codespaces/{codespace_name}/publish" ], removeRepositoryForSecretForAuthenticatedUser: [ "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" ], removeSelectedRepoFromOrgSecret: [ "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" ], repoMachinesForAuthenticatedUser: [ "GET /repos/{owner}/{repo}/codespaces/machines" ], setRepositoriesForSecretForAuthenticatedUser: [ "PUT /user/codespaces/secrets/{secret_name}/repositories" ], setSelectedReposForOrgSecret: [ "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories" ], startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], stopInOrganization: [ "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop" ], updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] }, copilot: { addCopilotSeatsForTeams: [ "POST /orgs/{org}/copilot/billing/selected_teams" ], addCopilotSeatsForUsers: [ "POST /orgs/{org}/copilot/billing/selected_users" ], cancelCopilotSeatAssignmentForTeams: [ "DELETE /orgs/{org}/copilot/billing/selected_teams" ], cancelCopilotSeatAssignmentForUsers: [ "DELETE /orgs/{org}/copilot/billing/selected_users" ], copilotMetricsForOrganization: ["GET /orgs/{org}/copilot/metrics"], copilotMetricsForTeam: ["GET /orgs/{org}/team/{team_slug}/copilot/metrics"], getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"], getCopilotSeatDetailsForUser: [ "GET /orgs/{org}/members/{username}/copilot" ], listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"] }, credentials: { revoke: ["POST /credentials/revoke"] }, dependabot: { addSelectedRepoToOrgSecret: [ "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" ], createOrUpdateOrgSecret: [ "PUT /orgs/{org}/dependabot/secrets/{secret_name}" ], createOrUpdateRepoSecret: [ "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" ], deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], deleteRepoSecret: [ "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" ], getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"], getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], getRepoPublicKey: [ "GET /repos/{owner}/{repo}/dependabot/secrets/public-key" ], getRepoSecret: [ "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" ], listAlertsForEnterprise: [ "GET /enterprises/{enterprise}/dependabot/alerts" ], listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"], listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"], listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], listSelectedReposForOrgSecret: [ "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories" ], removeSelectedRepoFromOrgSecret: [ "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" ], setSelectedReposForOrgSecret: [ "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" ], updateAlert: [ "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" ] }, dependencyGraph: { createRepositorySnapshot: [ "POST /repos/{owner}/{repo}/dependency-graph/snapshots" ], diffRange: [ "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}" ], exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"] }, emojis: { get: ["GET /emojis"] }, gists: { checkIsStarred: ["GET /gists/{gist_id}/star"], create: ["POST /gists"], createComment: ["POST /gists/{gist_id}/comments"], delete: ["DELETE /gists/{gist_id}"], deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], fork: ["POST /gists/{gist_id}/forks"], get: ["GET /gists/{gist_id}"], getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], getRevision: ["GET /gists/{gist_id}/{sha}"], list: ["GET /gists"], listComments: ["GET /gists/{gist_id}/comments"], listCommits: ["GET /gists/{gist_id}/commits"], listForUser: ["GET /users/{username}/gists"], listForks: ["GET /gists/{gist_id}/forks"], listPublic: ["GET /gists/public"], listStarred: ["GET /gists/starred"], star: ["PUT /gists/{gist_id}/star"], unstar: ["DELETE /gists/{gist_id}/star"], update: ["PATCH /gists/{gist_id}"], updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] }, git: { createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], createCommit: ["POST /repos/{owner}/{repo}/git/commits"], createRef: ["POST /repos/{owner}/{repo}/git/refs"], createTag: ["POST /repos/{owner}/{repo}/git/tags"], createTree: ["POST /repos/{owner}/{repo}/git/trees"], deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] }, gitignore: { getAllTemplates: ["GET /gitignore/templates"], getTemplate: ["GET /gitignore/templates/{name}"] }, hostedCompute: { createNetworkConfigurationForOrg: [ "POST /orgs/{org}/settings/network-configurations" ], deleteNetworkConfigurationFromOrg: [ "DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}" ], getNetworkConfigurationForOrg: [ "GET /orgs/{org}/settings/network-configurations/{network_configuration_id}" ], getNetworkSettingsForOrg: [ "GET /orgs/{org}/settings/network-settings/{network_settings_id}" ], listNetworkConfigurationsForOrg: [ "GET /orgs/{org}/settings/network-configurations" ], updateNetworkConfigurationForOrg: [ "PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}" ] }, interactions: { getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], getRestrictionsForYourPublicRepos: [ "GET /user/interaction-limits", {}, { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] } ], removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], removeRestrictionsForRepo: [ "DELETE /repos/{owner}/{repo}/interaction-limits" ], removeRestrictionsForYourPublicRepos: [ "DELETE /user/interaction-limits", {}, { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] } ], setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], setRestrictionsForYourPublicRepos: [ "PUT /user/interaction-limits", {}, { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] } ] }, issues: { addAssignees: [ "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" ], addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], addSubIssue: [ "POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues" ], checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], checkUserCanBeAssignedToIssue: [ "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}" ], create: ["POST /repos/{owner}/{repo}/issues"], createComment: [ "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" ], createLabel: ["POST /repos/{owner}/{repo}/labels"], createMilestone: ["POST /repos/{owner}/{repo}/milestones"], deleteComment: [ "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" ], deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], deleteMilestone: [ "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" ], get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], list: ["GET /issues"], listAssignees: ["GET /repos/{owner}/{repo}/assignees"], listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], listEventsForTimeline: [ "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" ], listForAuthenticatedUser: ["GET /user/issues"], listForOrg: ["GET /orgs/{org}/issues"], listForRepo: ["GET /repos/{owner}/{repo}/issues"], listLabelsForMilestone: [ "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" ], listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], listLabelsOnIssue: [ "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" ], listMilestones: ["GET /repos/{owner}/{repo}/milestones"], listSubIssues: [ "GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues" ], lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], removeAllLabels: [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" ], removeAssignees: [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" ], removeLabel: [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" ], removeSubIssue: [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue" ], reprioritizeSubIssue: [ "PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority" ], setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], updateMilestone: [ "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" ] }, licenses: { get: ["GET /licenses/{license}"], getAllCommonlyUsed: ["GET /licenses"], getForRepo: ["GET /repos/{owner}/{repo}/license"] }, markdown: { render: ["POST /markdown"], renderRaw: [ "POST /markdown/raw", { headers: { "content-type": "text/plain; charset=utf-8" } } ] }, meta: { get: ["GET /meta"], getAllVersions: ["GET /versions"], getOctocat: ["GET /octocat"], getZen: ["GET /zen"], root: ["GET /"] }, migrations: { deleteArchiveForAuthenticatedUser: [ "DELETE /user/migrations/{migration_id}/archive" ], deleteArchiveForOrg: [ "DELETE /orgs/{org}/migrations/{migration_id}/archive" ], downloadArchiveForOrg: [ "GET /orgs/{org}/migrations/{migration_id}/archive" ], getArchiveForAuthenticatedUser: [ "GET /user/migrations/{migration_id}/archive" ], getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], listForAuthenticatedUser: ["GET /user/migrations"], listForOrg: ["GET /orgs/{org}/migrations"], listReposForAuthenticatedUser: [ "GET /user/migrations/{migration_id}/repositories" ], listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], listReposForUser: [ "GET /user/migrations/{migration_id}/repositories", {}, { renamed: ["migrations", "listReposForAuthenticatedUser"] } ], startForAuthenticatedUser: ["POST /user/migrations"], startForOrg: ["POST /orgs/{org}/migrations"], unlockRepoForAuthenticatedUser: [ "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" ], unlockRepoForOrg: [ "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" ] }, oidc: { getOidcCustomSubTemplateForOrg: [ "GET /orgs/{org}/actions/oidc/customization/sub" ], updateOidcCustomSubTemplateForOrg: [ "PUT /orgs/{org}/actions/oidc/customization/sub" ] }, orgs: { addSecurityManagerTeam: [ "PUT /orgs/{org}/security-managers/teams/{team_slug}", {}, { deprecated: "octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team" } ], assignTeamToOrgRole: [ "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" ], assignUserToOrgRole: [ "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}" ], blockUser: ["PUT /orgs/{org}/blocks/{username}"], cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], convertMemberToOutsideCollaborator: [ "PUT /orgs/{org}/outside_collaborators/{username}" ], createInvitation: ["POST /orgs/{org}/invitations"], createIssueType: ["POST /orgs/{org}/issue-types"], createOrUpdateCustomProperties: ["PATCH /orgs/{org}/properties/schema"], createOrUpdateCustomPropertiesValuesForRepos: [ "PATCH /orgs/{org}/properties/values" ], createOrUpdateCustomProperty: [ "PUT /orgs/{org}/properties/schema/{custom_property_name}" ], createWebhook: ["POST /orgs/{org}/hooks"], delete: ["DELETE /orgs/{org}"], deleteIssueType: ["DELETE /orgs/{org}/issue-types/{issue_type_id}"], deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], enableOrDisableSecurityProductOnAllOrgRepos: [ "POST /orgs/{org}/{security_product}/{enablement}", {}, { deprecated: "octokit.rest.orgs.enableOrDisableSecurityProductOnAllOrgRepos() is deprecated, see https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization" } ], get: ["GET /orgs/{org}"], getAllCustomProperties: ["GET /orgs/{org}/properties/schema"], getCustomProperty: [ "GET /orgs/{org}/properties/schema/{custom_property_name}" ], getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"], getOrgRulesetHistory: ["GET /orgs/{org}/rulesets/{ruleset_id}/history"], getOrgRulesetVersion: [ "GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}" ], getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], getWebhookDelivery: [ "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" ], list: ["GET /organizations"], listAppInstallations: ["GET /orgs/{org}/installations"], listAttestations: ["GET /orgs/{org}/attestations/{subject_digest}"], listBlockedUsers: ["GET /orgs/{org}/blocks"], listCustomPropertiesValuesForRepos: ["GET /orgs/{org}/properties/values"], listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], listForAuthenticatedUser: ["GET /user/orgs"], listForUser: ["GET /users/{username}/orgs"], listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], listIssueTypes: ["GET /orgs/{org}/issue-types"], listMembers: ["GET /orgs/{org}/members"], listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"], listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"], listOrgRoles: ["GET /orgs/{org}/organization-roles"], listOrganizationFineGrainedPermissions: [ "GET /orgs/{org}/organization-fine-grained-permissions" ], listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], listPatGrantRepositories: [ "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories" ], listPatGrantRequestRepositories: [ "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories" ], listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"], listPatGrants: ["GET /orgs/{org}/personal-access-tokens"], listPendingInvitations: ["GET /orgs/{org}/invitations"], listPublicMembers: ["GET /orgs/{org}/public_members"], listSecurityManagerTeams: [ "GET /orgs/{org}/security-managers", {}, { deprecated: "octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams" } ], listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], listWebhooks: ["GET /orgs/{org}/hooks"], pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], redeliverWebhookDelivery: [ "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" ], removeCustomProperty: [ "DELETE /orgs/{org}/properties/schema/{custom_property_name}" ], removeMember: ["DELETE /orgs/{org}/members/{username}"], removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], removeOutsideCollaborator: [ "DELETE /orgs/{org}/outside_collaborators/{username}" ], removePublicMembershipForAuthenticatedUser: [ "DELETE /orgs/{org}/public_members/{username}" ], removeSecurityManagerTeam: [ "DELETE /orgs/{org}/security-managers/teams/{team_slug}", {}, { deprecated: "octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team" } ], reviewPatGrantRequest: [ "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}" ], reviewPatGrantRequestsInBulk: [ "POST /orgs/{org}/personal-access-token-requests" ], revokeAllOrgRolesTeam: [ "DELETE /orgs/{org}/organization-roles/teams/{team_slug}" ], revokeAllOrgRolesUser: [ "DELETE /orgs/{org}/organization-roles/users/{username}" ], revokeOrgRoleTeam: [ "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" ], revokeOrgRoleUser: [ "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}" ], setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], setPublicMembershipForAuthenticatedUser: [ "PUT /orgs/{org}/public_members/{username}" ], unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], update: ["PATCH /orgs/{org}"], updateIssueType: ["PUT /orgs/{org}/issue-types/{issue_type_id}"], updateMembershipForAuthenticatedUser: [ "PATCH /user/memberships/orgs/{org}" ], updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"], updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"], updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] }, packages: { deletePackageForAuthenticatedUser: [ "DELETE /user/packages/{package_type}/{package_name}" ], deletePackageForOrg: [ "DELETE /orgs/{org}/packages/{package_type}/{package_name}" ], deletePackageForUser: [ "DELETE /users/{username}/packages/{package_type}/{package_name}" ], deletePackageVersionForAuthenticatedUser: [ "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" ], deletePackageVersionForOrg: [ "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" ], deletePackageVersionForUser: [ "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" ], getAllPackageVersionsForAPackageOwnedByAnOrg: [ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", {}, { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] } ], getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ "GET /user/packages/{package_type}/{package_name}/versions", {}, { renamed: [ "packages", "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" ] } ], getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ "GET /user/packages/{package_type}/{package_name}/versions" ], getAllPackageVersionsForPackageOwnedByOrg: [ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" ], getAllPackageVersionsForPackageOwnedByUser: [ "GET /users/{username}/packages/{package_type}/{package_name}/versions" ], getPackageForAuthenticatedUser: [ "GET /user/packages/{package_type}/{package_name}" ], getPackageForOrganization: [ "GET /orgs/{org}/packages/{package_type}/{package_name}" ], getPackageForUser: [ "GET /users/{username}/packages/{package_type}/{package_name}" ], getPackageVersionForAuthenticatedUser: [ "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" ], getPackageVersionForOrganization: [ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" ], getPackageVersionForUser: [ "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" ], listDockerMigrationConflictingPackagesForAuthenticatedUser: [ "GET /user/docker/conflicts" ], listDockerMigrationConflictingPackagesForOrganization: [ "GET /orgs/{org}/docker/conflicts" ], listDockerMigrationConflictingPackagesForUser: [ "GET /users/{username}/docker/conflicts" ], listPackagesForAuthenticatedUser: ["GET /user/packages"], listPackagesForOrganization: ["GET /orgs/{org}/packages"], listPackagesForUser: ["GET /users/{username}/packages"], restorePackageForAuthenticatedUser: [ "POST /user/packages/{package_type}/{package_name}/restore{?token}" ], restorePackageForOrg: [ "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" ], restorePackageForUser: [ "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" ], restorePackageVersionForAuthenticatedUser: [ "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" ], restorePackageVersionForOrg: [ "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" ], restorePackageVersionForUser: [ "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" ] }, privateRegistries: { createOrgPrivateRegistry: ["POST /orgs/{org}/private-registries"], deleteOrgPrivateRegistry: [ "DELETE /orgs/{org}/private-registries/{secret_name}" ], getOrgPrivateRegistry: ["GET /orgs/{org}/private-registries/{secret_name}"], getOrgPublicKey: ["GET /orgs/{org}/private-registries/public-key"], listOrgPrivateRegistries: ["GET /orgs/{org}/private-registries"], updateOrgPrivateRegistry: [ "PATCH /orgs/{org}/private-registries/{secret_name}" ] }, pulls: { checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], create: ["POST /repos/{owner}/{repo}/pulls"], createReplyForReviewComment: [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" ], createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], createReviewComment: [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" ], deletePendingReview: [ "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" ], deleteReviewComment: [ "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" ], dismissReview: [ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" ], get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], getReview: [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" ], getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], list: ["GET /repos/{owner}/{repo}/pulls"], listCommentsForReview: [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" ], listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], listRequestedReviewers: [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" ], listReviewComments: [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" ], listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], removeRequestedReviewers: [ "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" ], requestReviewers: [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" ], submitReview: [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" ], update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], updateBranch: [ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" ], updateReview: [ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" ], updateReviewComment: [ "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" ] }, rateLimit: { get: ["GET /rate_limit"] }, reactions: { createForCommitComment: [ "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" ], createForIssue: [ "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" ], createForIssueComment: [ "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" ], createForPullRequestReviewComment: [ "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" ], createForRelease: [ "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" ], createForTeamDiscussionCommentInOrg: [ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" ], createForTeamDiscussionInOrg: [ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" ], deleteForCommitComment: [ "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" ], deleteForIssue: [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" ], deleteForIssueComment: [ "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" ], deleteForPullRequestComment: [ "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" ], deleteForRelease: [ "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}" ], deleteForTeamDiscussion: [ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" ], deleteForTeamDiscussionComment: [ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" ], listForCommitComment: [ "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" ], listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], listForIssueComment: [ "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" ], listForPullRequestReviewComment: [ "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" ], listForRelease: [ "GET /repos/{owner}/{repo}/releases/{release_id}/reactions" ], listForTeamDiscussionCommentInOrg: [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" ], listForTeamDiscussionInOrg: [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" ] }, repos: { acceptInvitation: [ "PATCH /user/repository_invitations/{invitation_id}", {}, { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] } ], acceptInvitationForAuthenticatedUser: [ "PATCH /user/repository_invitations/{invitation_id}" ], addAppAccessRestrictions: [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { mapToData: "apps" } ], addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], addStatusCheckContexts: [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { mapToData: "contexts" } ], addTeamAccessRestrictions: [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { mapToData: "teams" } ], addUserAccessRestrictions: [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { mapToData: "users" } ], cancelPagesDeployment: [ "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel" ], checkAutomatedSecurityFixes: [ "GET /repos/{owner}/{repo}/automated-security-fixes" ], checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], checkPrivateVulnerabilityReporting: [ "GET /repos/{owner}/{repo}/private-vulnerability-reporting" ], checkVulnerabilityAlerts: [ "GET /repos/{owner}/{repo}/vulnerability-alerts" ], codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], compareCommitsWithBasehead: [ "GET /repos/{owner}/{repo}/compare/{basehead}" ], createAttestation: ["POST /repos/{owner}/{repo}/attestations"], createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], createCommitComment: [ "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" ], createCommitSignatureProtection: [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" ], createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], createDeployKey: ["POST /repos/{owner}/{repo}/keys"], createDeployment: ["POST /repos/{owner}/{repo}/deployments"], createDeploymentBranchPolicy: [ "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" ], createDeploymentProtectionRule: [ "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" ], createDeploymentStatus: [ "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" ], createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], createForAuthenticatedUser: ["POST /user/repos"], createFork: ["POST /repos/{owner}/{repo}/forks"], createInOrg: ["POST /orgs/{org}/repos"], createOrUpdateCustomPropertiesValues: [ "PATCH /repos/{owner}/{repo}/properties/values" ], createOrUpdateEnvironment: [ "PUT /repos/{owner}/{repo}/environments/{environment_name}" ], createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], createOrgRuleset: ["POST /orgs/{org}/rulesets"], createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"], createPagesSite: ["POST /repos/{owner}/{repo}/pages"], createRelease: ["POST /repos/{owner}/{repo}/releases"], createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"], createUsingTemplate: [ "POST /repos/{template_owner}/{template_repo}/generate" ], createWebhook: ["POST /repos/{owner}/{repo}/hooks"], declineInvitation: [ "DELETE /user/repository_invitations/{invitation_id}", {}, { renamed: ["repos", "declineInvitationForAuthenticatedUser"] } ], declineInvitationForAuthenticatedUser: [ "DELETE /user/repository_invitations/{invitation_id}" ], delete: ["DELETE /repos/{owner}/{repo}"], deleteAccessRestrictions: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" ], deleteAdminBranchProtection: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" ], deleteAnEnvironment: [ "DELETE /repos/{owner}/{repo}/environments/{environment_name}" ], deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], deleteBranchProtection: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" ], deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], deleteCommitSignatureProtection: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" ], deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], deleteDeployment: [ "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" ], deleteDeploymentBranchPolicy: [ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" ], deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], deleteInvitation: [ "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" ], deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"], deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], deletePullRequestReviewProtection: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" ], deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], deleteReleaseAsset: [ "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" ], deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"], deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], disableAutomatedSecurityFixes: [ "DELETE /repos/{owner}/{repo}/automated-security-fixes" ], disableDeploymentProtectionRule: [ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" ], disablePrivateVulnerabilityReporting: [ "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting" ], disableVulnerabilityAlerts: [ "DELETE /repos/{owner}/{repo}/vulnerability-alerts" ], downloadArchive: [ "GET /repos/{owner}/{repo}/zipball/{ref}", {}, { renamed: ["repos", "downloadZipballArchive"] } ], downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], enableAutomatedSecurityFixes: [ "PUT /repos/{owner}/{repo}/automated-security-fixes" ], enablePrivateVulnerabilityReporting: [ "PUT /repos/{owner}/{repo}/private-vulnerability-reporting" ], enableVulnerabilityAlerts: [ "PUT /repos/{owner}/{repo}/vulnerability-alerts" ], generateReleaseNotes: [ "POST /repos/{owner}/{repo}/releases/generate-notes" ], get: ["GET /repos/{owner}/{repo}"], getAccessRestrictions: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" ], getAdminBranchProtection: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" ], getAllDeploymentProtectionRules: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" ], getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], getAllStatusCheckContexts: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" ], getAllTopics: ["GET /repos/{owner}/{repo}/topics"], getAppsWithAccessToProtectedBranch: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" ], getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], getBranchProtection: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection" ], getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"], getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], getCollaboratorPermissionLevel: [ "GET /repos/{owner}/{repo}/collaborators/{username}/permission" ], getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], getCommitSignatureProtection: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" ], getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], getCustomDeploymentProtectionRule: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" ], getCustomPropertiesValues: ["GET /repos/{owner}/{repo}/properties/values"], getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], getDeploymentBranchPolicy: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" ], getDeploymentStatus: [ "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" ], getEnvironment: [ "GET /repos/{owner}/{repo}/environments/{environment_name}" ], getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"], getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"], getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"], getOrgRulesets: ["GET /orgs/{org}/rulesets"], getPages: ["GET /repos/{owner}/{repo}/pages"], getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], getPagesDeployment: [ "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}" ], getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], getPullRequestReviewProtection: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" ], getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], getReadme: ["GET /repos/{owner}/{repo}/readme"], getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], getRepoRuleSuite: [ "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}" ], getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"], getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"], getRepoRulesetHistory: [ "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history" ], getRepoRulesetVersion: [ "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}" ], getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"], getStatusChecksProtection: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" ], getTeamsWithAccessToProtectedBranch: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" ], getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], getUsersWithAccessToProtectedBranch: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" ], getViews: ["GET /repos/{owner}/{repo}/traffic/views"], getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], getWebhookConfigForRepo: [ "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" ], getWebhookDelivery: [ "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" ], listActivities: ["GET /repos/{owner}/{repo}/activity"], listAttestations: [ "GET /repos/{owner}/{repo}/attestations/{subject_digest}" ], listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], listBranches: ["GET /repos/{owner}/{repo}/branches"], listBranchesForHeadCommit: [ "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" ], listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], listCommentsForCommit: [ "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" ], listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], listCommitStatusesForRef: [ "GET /repos/{owner}/{repo}/commits/{ref}/statuses" ], listCommits: ["GET /repos/{owner}/{repo}/commits"], listContributors: ["GET /repos/{owner}/{repo}/contributors"], listCustomDeploymentRuleIntegrations: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps" ], listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], listDeploymentBranchPolicies: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" ], listDeploymentStatuses: [ "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" ], listDeployments: ["GET /repos/{owner}/{repo}/deployments"], listForAuthenticatedUser: ["GET /user/repos"], listForOrg: ["GET /orgs/{org}/repos"], listForUser: ["GET /users/{username}/repos"], listForks: ["GET /repos/{owner}/{repo}/forks"], listInvitations: ["GET /repos/{owner}/{repo}/invitations"], listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], listLanguages: ["GET /repos/{owner}/{repo}/languages"], listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], listPublic: ["GET /repositories"], listPullRequestsAssociatedWithCommit: [ "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" ], listReleaseAssets: [ "GET /repos/{owner}/{repo}/releases/{release_id}/assets" ], listReleases: ["GET /repos/{owner}/{repo}/releases"], listTags: ["GET /repos/{owner}/{repo}/tags"], listTeams: ["GET /repos/{owner}/{repo}/teams"], listWebhookDeliveries: [ "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" ], listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], merge: ["POST /repos/{owner}/{repo}/merges"], mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], redeliverWebhookDelivery: [ "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" ], removeAppAccessRestrictions: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { mapToData: "apps" } ], removeCollaborator: [ "DELETE /repos/{owner}/{repo}/collaborators/{username}" ], removeStatusCheckContexts: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { mapToData: "contexts" } ], removeStatusCheckProtection: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" ], removeTeamAccessRestrictions: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { mapToData: "teams" } ], removeUserAccessRestrictions: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { mapToData: "users" } ], renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], setAdminBranchProtection: [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" ], setAppAccessRestrictions: [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { mapToData: "apps" } ], setStatusCheckContexts: [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { mapToData: "contexts" } ], setTeamAccessRestrictions: [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { mapToData: "teams" } ], setUserAccessRestrictions: [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { mapToData: "users" } ], testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], transfer: ["POST /repos/{owner}/{repo}/transfer"], update: ["PATCH /repos/{owner}/{repo}"], updateBranchProtection: [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection" ], updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], updateDeploymentBranchPolicy: [ "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" ], updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], updateInvitation: [ "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" ], updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"], updatePullRequestReviewProtection: [ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" ], updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], updateReleaseAsset: [ "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" ], updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"], updateStatusCheckPotection: [ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", {}, { renamed: ["repos", "updateStatusCheckProtection"] } ], updateStatusCheckProtection: [ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" ], updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], updateWebhookConfigForRepo: [ "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" ], uploadReleaseAsset: [ "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", { baseUrl: "https://uploads.github.com" } ] }, search: { code: ["GET /search/code"], commits: ["GET /search/commits"], issuesAndPullRequests: [ "GET /search/issues", {}, { deprecated: "octokit.rest.search.issuesAndPullRequests() is deprecated, see https://docs.github.com/rest/search/search#search-issues-and-pull-requests" } ], labels: ["GET /search/labels"], repos: ["GET /search/repositories"], topics: ["GET /search/topics"], users: ["GET /search/users"] }, secretScanning: { createPushProtectionBypass: [ "POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses" ], getAlert: [ "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" ], getScanHistory: ["GET /repos/{owner}/{repo}/secret-scanning/scan-history"], listAlertsForEnterprise: [ "GET /enterprises/{enterprise}/secret-scanning/alerts" ], listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], listLocationsForAlert: [ "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations" ], updateAlert: [ "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" ] }, securityAdvisories: { createFork: [ "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks" ], createPrivateVulnerabilityReport: [ "POST /repos/{owner}/{repo}/security-advisories/reports" ], createRepositoryAdvisory: [ "POST /repos/{owner}/{repo}/security-advisories" ], createRepositoryAdvisoryCveRequest: [ "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve" ], getGlobalAdvisory: ["GET /advisories/{ghsa_id}"], getRepositoryAdvisory: [ "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}" ], listGlobalAdvisories: ["GET /advisories"], listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"], listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"], updateRepositoryAdvisory: [ "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}" ] }, teams: { addOrUpdateMembershipForUserInOrg: [ "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" ], addOrUpdateRepoPermissionsInOrg: [ "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" ], checkPermissionsForRepoInOrg: [ "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" ], create: ["POST /orgs/{org}/teams"], createDiscussionCommentInOrg: [ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" ], createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], deleteDiscussionCommentInOrg: [ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" ], deleteDiscussionInOrg: [ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" ], deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], getByName: ["GET /orgs/{org}/teams/{team_slug}"], getDiscussionCommentInOrg: [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" ], getDiscussionInOrg: [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" ], getMembershipForUserInOrg: [ "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" ], list: ["GET /orgs/{org}/teams"], listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], listDiscussionCommentsInOrg: [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" ], listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], listForAuthenticatedUser: ["GET /user/teams"], listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], listPendingInvitationsInOrg: [ "GET /orgs/{org}/teams/{team_slug}/invitations" ], listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], removeMembershipForUserInOrg: [ "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" ], removeRepoInOrg: [ "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" ], updateDiscussionCommentInOrg: [ "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" ], updateDiscussionInOrg: [ "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" ], updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] }, users: { addEmailForAuthenticated: [ "POST /user/emails", {}, { renamed: ["users", "addEmailForAuthenticatedUser"] } ], addEmailForAuthenticatedUser: ["POST /user/emails"], addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"], block: ["PUT /user/blocks/{username}"], checkBlocked: ["GET /user/blocks/{username}"], checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], createGpgKeyForAuthenticated: [ "POST /user/gpg_keys", {}, { renamed: ["users", "createGpgKeyForAuthenticatedUser"] } ], createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], createPublicSshKeyForAuthenticated: [ "POST /user/keys", {}, { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] } ], createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"], deleteEmailForAuthenticated: [ "DELETE /user/emails", {}, { renamed: ["users", "deleteEmailForAuthenticatedUser"] } ], deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], deleteGpgKeyForAuthenticated: [ "DELETE /user/gpg_keys/{gpg_key_id}", {}, { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] } ], deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], deletePublicSshKeyForAuthenticated: [ "DELETE /user/keys/{key_id}", {}, { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] } ], deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"], deleteSshSigningKeyForAuthenticatedUser: [ "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}" ], follow: ["PUT /user/following/{username}"], getAuthenticated: ["GET /user"], getById: ["GET /user/{account_id}"], getByUsername: ["GET /users/{username}"], getContextForUser: ["GET /users/{username}/hovercard"], getGpgKeyForAuthenticated: [ "GET /user/gpg_keys/{gpg_key_id}", {}, { renamed: ["users", "getGpgKeyForAuthenticatedUser"] } ], getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], getPublicSshKeyForAuthenticated: [ "GET /user/keys/{key_id}", {}, { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] } ], getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], getSshSigningKeyForAuthenticatedUser: [ "GET /user/ssh_signing_keys/{ssh_signing_key_id}" ], list: ["GET /users"], listAttestations: ["GET /users/{username}/attestations/{subject_digest}"], listBlockedByAuthenticated: [ "GET /user/blocks", {}, { renamed: ["users", "listBlockedByAuthenticatedUser"] } ], listBlockedByAuthenticatedUser: ["GET /user/blocks"], listEmailsForAuthenticated: [ "GET /user/emails", {}, { renamed: ["users", "listEmailsForAuthenticatedUser"] } ], listEmailsForAuthenticatedUser: ["GET /user/emails"], listFollowedByAuthenticated: [ "GET /user/following", {}, { renamed: ["users", "listFollowedByAuthenticatedUser"] } ], listFollowedByAuthenticatedUser: ["GET /user/following"], listFollowersForAuthenticatedUser: ["GET /user/followers"], listFollowersForUser: ["GET /users/{username}/followers"], listFollowingForUser: ["GET /users/{username}/following"], listGpgKeysForAuthenticated: [ "GET /user/gpg_keys", {}, { renamed: ["users", "listGpgKeysForAuthenticatedUser"] } ], listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], listPublicEmailsForAuthenticated: [ "GET /user/public_emails", {}, { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] } ], listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], listPublicKeysForUser: ["GET /users/{username}/keys"], listPublicSshKeysForAuthenticated: [ "GET /user/keys", {}, { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] } ], listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"], listSocialAccountsForUser: ["GET /users/{username}/social_accounts"], listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"], listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"], setPrimaryEmailVisibilityForAuthenticated: [ "PATCH /user/email/visibility", {}, { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] } ], setPrimaryEmailVisibilityForAuthenticatedUser: [ "PATCH /user/email/visibility" ], unblock: ["DELETE /user/blocks/{username}"], unfollow: ["DELETE /user/following/{username}"], updateAuthenticated: ["PATCH /user"] } }; var endpoints_default = Endpoints; // node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js var endpointMethodsMap = /* @__PURE__ */ new Map(); for (const [scope, endpoints] of Object.entries(endpoints_default)) { for (const [methodName, endpoint2] of Object.entries(endpoints)) { const [route, defaults, decorations] = endpoint2; const [method, url] = route.split(/ /); const endpointDefaults = Object.assign( { method, url }, defaults ); if (!endpointMethodsMap.has(scope)) { endpointMethodsMap.set(scope, /* @__PURE__ */ new Map()); } endpointMethodsMap.get(scope).set(methodName, { scope, methodName, endpointDefaults, decorations }); } } var handler = { has({ scope }, methodName) { return endpointMethodsMap.get(scope).has(methodName); }, getOwnPropertyDescriptor(target, methodName) { return { value: this.get(target, methodName), // ensures method is in the cache configurable: true, writable: true, enumerable: true }; }, defineProperty(target, methodName, descriptor) { Object.defineProperty(target.cache, methodName, descriptor); return true; }, deleteProperty(target, methodName) { delete target.cache[methodName]; return true; }, ownKeys({ scope }) { return [...endpointMethodsMap.get(scope).keys()]; }, set(target, methodName, value) { return target.cache[methodName] = value; }, get({ octokit, scope, cache }, methodName) { if (cache[methodName]) { return cache[methodName]; } const method = endpointMethodsMap.get(scope).get(methodName); if (!method) { return void 0; } const { endpointDefaults, decorations } = method; if (decorations) { cache[methodName] = decorate( octokit, scope, methodName, endpointDefaults, decorations ); } else { cache[methodName] = octokit.request.defaults(endpointDefaults); } return cache[methodName]; } }; function endpointsToMethods(octokit) { const newMethods = {}; for (const scope of endpointMethodsMap.keys()) { newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler); } return newMethods; } function decorate(octokit, scope, methodName, defaults, decorations) { const requestWithDefaults = octokit.request.defaults(defaults); function withDecorations(...args) { let options = requestWithDefaults.endpoint.merge(...args); if (decorations.mapToData) { options = Object.assign({}, options, { data: options[decorations.mapToData], [decorations.mapToData]: void 0 }); return requestWithDefaults(options); } if (decorations.renamed) { const [newScope, newMethodName] = decorations.renamed; octokit.log.warn( `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()` ); } if (decorations.deprecated) { octokit.log.warn(decorations.deprecated); } if (decorations.renamedParameters) { const options2 = requestWithDefaults.endpoint.merge(...args); for (const [name, alias] of Object.entries( decorations.renamedParameters )) { if (name in options2) { octokit.log.warn( `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` ); if (!(alias in options2)) { options2[alias] = options2[name]; } delete options2[name]; } } return requestWithDefaults(options2); } return requestWithDefaults(...args); } return Object.assign(withDecorations, requestWithDefaults); } // node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js function restEndpointMethods(octokit) { const api = endpointsToMethods(octokit); return { rest: api }; } restEndpointMethods.VERSION = VERSION6; function legacyRestEndpointMethods(octokit) { const api = endpointsToMethods(octokit); return { ...api, rest: api }; } legacyRestEndpointMethods.VERSION = VERSION6; // src/update-known-checksums.ts var semver3 = __toESM(require_semver(), 1); // src/download/checksum/update-known-checksums.ts var import_node_fs = require("node:fs"); // node_modules/@actions/tool-cache/lib/tool-cache.js var crypto2 = __toESM(require("crypto"), 1); var fs3 = __toESM(require("fs"), 1); // node_modules/@actions/tool-cache/lib/manifest.js var semver = __toESM(require_semver3(), 1); // node_modules/@actions/tool-cache/lib/tool-cache.js var path = __toESM(require("path"), 1); var semver2 = __toESM(require_semver3(), 1); var stream = __toESM(require("stream"), 1); var util = __toESM(require("util"), 1); var import_assert2 = require("assert"); // node_modules/@actions/tool-cache/lib/retry-helper.js var __awaiter4 = function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var RetryHelper = class { constructor(maxAttempts, minSeconds, maxSeconds) { if (maxAttempts < 1) { throw new Error("max attempts should be greater than or equal to 1"); } this.maxAttempts = maxAttempts; this.minSeconds = Math.floor(minSeconds); this.maxSeconds = Math.floor(maxSeconds); if (this.minSeconds > this.maxSeconds) { throw new Error("min seconds should be less than or equal to max seconds"); } } execute(action, isRetryable) { return __awaiter4(this, void 0, void 0, function* () { let attempt = 1; while (attempt < this.maxAttempts) { try { return yield action(); } catch (err) { if (isRetryable && !isRetryable(err)) { throw err; } info(err.message); } const seconds = this.getSleepAmount(); info(`Waiting ${seconds} seconds before trying again`); yield this.sleep(seconds); attempt++; } return yield action(); }); } getSleepAmount() { return Math.floor(Math.random() * (this.maxSeconds - this.minSeconds + 1)) + this.minSeconds; } sleep(seconds) { return __awaiter4(this, void 0, void 0, function* () { return new Promise((resolve) => setTimeout(resolve, seconds * 1e3)); }); } }; // node_modules/@actions/tool-cache/lib/tool-cache.js var __awaiter5 = function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var HTTPError = class extends Error { constructor(httpStatusCode) { super(`Unexpected HTTP response: ${httpStatusCode}`); this.httpStatusCode = httpStatusCode; Object.setPrototypeOf(this, new.target.prototype); } }; var IS_WINDOWS3 = process.platform === "win32"; var IS_MAC = process.platform === "darwin"; var userAgent2 = "actions/tool-cache"; function downloadTool(url, dest, auth2, headers) { return __awaiter5(this, void 0, void 0, function* () { dest = dest || path.join(_getTempDirectory(), crypto2.randomUUID()); yield mkdirP(path.dirname(dest)); debug(`Downloading ${url}`); debug(`Destination ${dest}`); const maxAttempts = 3; const minSeconds = _getGlobal("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS", 10); const maxSeconds = _getGlobal("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS", 20); const retryHelper = new RetryHelper(maxAttempts, minSeconds, maxSeconds); return yield retryHelper.execute(() => __awaiter5(this, void 0, void 0, function* () { return yield downloadToolAttempt(url, dest || "", auth2, headers); }), (err) => { if (err instanceof HTTPError && err.httpStatusCode) { if (err.httpStatusCode < 500 && err.httpStatusCode !== 408 && err.httpStatusCode !== 429) { return false; } } return true; }); }); } function downloadToolAttempt(url, dest, auth2, headers) { return __awaiter5(this, void 0, void 0, function* () { if (fs3.existsSync(dest)) { throw new Error(`Destination file path ${dest} already exists`); } const http2 = new HttpClient(userAgent2, [], { allowRetries: false }); if (auth2) { debug("set auth"); if (headers === void 0) { headers = {}; } headers.authorization = auth2; } const response = yield http2.get(url, headers); if (response.message.statusCode !== 200) { const err = new HTTPError(response.message.statusCode); debug(`Failed to download from "${url}". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`); throw err; } const pipeline2 = util.promisify(stream.pipeline); const responseMessageFactory = _getGlobal("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY", () => response.message); const readStream = responseMessageFactory(); let succeeded = false; try { yield pipeline2(readStream, fs3.createWriteStream(dest)); debug("download complete"); succeeded = true; return dest; } finally { if (!succeeded) { debug("download failed"); try { yield rmRF(dest); } catch (err) { debug(`Failed to delete '${dest}'. ${err.message}`); } } } }); } function _getTempDirectory() { const tempDirectory = process.env["RUNNER_TEMP"] || ""; (0, import_assert2.ok)(tempDirectory, "Expected RUNNER_TEMP to be defined"); return tempDirectory; } function _getGlobal(key, defaultValue) { const value = global[key]; return value !== void 0 ? value : defaultValue; } // src/download/checksum/known-checksums.ts var KNOWN_CHECKSUMS = { "aarch64-apple-darwin-0.15.9": "013d878f17c625550e4a6b19235c22fc229639f66f563bb72cb2c896aeca11e8", "aarch64-pc-windows-msvc-0.15.9": "813c3b9cf0c01ef913bfbc8d2dd17e140a8c3d54ae1b8f8c20ac53e2871674f0", "aarch64-unknown-linux-gnu-0.15.9": "ea71b14433318bed364e0dbb04203e57027cf134ab909d5e452be28d87d0fd08", "aarch64-unknown-linux-musl-0.15.9": "e017dd0c1fd7475aaddc49bde8cddcee3c27d42f6ce139a96df0c1022e06d85b", "arm-unknown-linux-musleabihf-0.15.9": "593382b4b5271cf63b8ea9972c7475a299f341ce8a9c22127ce1f8b7d82fcfe1", "armv7-unknown-linux-gnueabihf-0.15.9": "3c12ad897c62954fdc6a5c0f7baddd06f1cb37f1987618fa243ebd00a7b67d86", "armv7-unknown-linux-musleabihf-0.15.9": "9d9ebfe0075c7a6411f771ba79e210a3dffc4ba9706b542c5db72dc39d922893", "i686-pc-windows-msvc-0.15.9": "46cdcacb4522e19a26a18d586abb6addc68b4254bea958e93a347d7566add1c3", "i686-unknown-linux-gnu-0.15.9": "c04ddaa542d36b0483e325d29b00520242cf6b4e78e4cea0b73f0c74c77459ef", "i686-unknown-linux-musl-0.15.9": "97145060b15819b7d31df7c3fd160b02397e89c40069d485915ce6fbe92cb769", "powerpc64le-unknown-linux-gnu-0.15.9": "56e522a316427281d590aff0bcece176aedb15e9329799c1ada5cd8fd5e17b71", "riscv64gc-unknown-linux-gnu-0.15.9": "e0499cfd557515133118cc4dafb65a805c9656833a66b2fddaee9a9f8e847de4", "s390x-unknown-linux-gnu-0.15.9": "7402b9bdb1aaa79387f5b702696ec75d9ebed26f0a8e5097fc58924418c92097", "x86_64-apple-darwin-0.15.9": "7e0fe9daba25848f85cb3d43e47ecd7d23f14e92e8799f92c1bcd8319a4ce4f8", "x86_64-pc-windows-msvc-0.15.9": "e38fddd19805bc8f7329003c2abdaf49d8ca9e5bc0c6702e8472e16f127bcd44", "x86_64-unknown-linux-gnu-0.15.9": "223ce40fbea2245b0a650abf9f5093a6009b56a04e5e63c036f446cab328dcf7", "x86_64-unknown-linux-musl-0.15.9": "e30e6e50dbf925b42335f28e2fa296d404294f294159b314dca47b88317fc477", "aarch64-apple-darwin-0.15.8": "94fc061f928c8f2b04c4b3a98aad2b1b04f38b4c808839bc5b33a2f0a63a47a3", "aarch64-pc-windows-msvc-0.15.8": "5e2941bff2f14fa9b48532bba67d1bbeec2c26d5fecc5a4bc0f76d813ad644dc", "aarch64-unknown-linux-gnu-0.15.8": "7df2a2c86f1017936d8ce7b74d451ed05f2c648af8cf89add7ac0e4f3635f386", "aarch64-unknown-linux-musl-0.15.8": "15e6a6c21696bbe59c56d0f1c437452b960bcdfe81ecc3bc19fa89e6a7d70eb6", "arm-unknown-linux-musleabihf-0.15.8": "49847e5d218aa17da9be67df543d7c635e67558356e67406f97db0742776ed6b", "armv7-unknown-linux-gnueabihf-0.15.8": "4116ec65accfc2463a30720407f239339f72b1e40a66b341a9450651f3b43976", "armv7-unknown-linux-musleabihf-0.15.8": "e35ad1094bc8ef40b4d60fd32dbc6b129c4d9d4283f7ac3c838189f614c81d83", "i686-pc-windows-msvc-0.15.8": "01fd5224726810986121e1618602f2c24332a6abd2476d37c73d695be36679a7", "i686-unknown-linux-gnu-0.15.8": "66bf0839b384700624d946390ceb4493a787b5e56b93dd17795e2d5111db01f7", "i686-unknown-linux-musl-0.15.8": "098040cc3fdcb01efffbefa83bad0ccf4ecbcc00b7d0b5489f405d633fad1d5a", "powerpc64le-unknown-linux-gnu-0.15.8": "b3664a2793b002ef65888eb2818d449ede3d34b16ee71f17e8f1851b3d22eb23", "riscv64gc-unknown-linux-gnu-0.15.8": "7557039907a61cd7f1c7bad06fd77bdc38a7b2436471fe0b58e662d78ae13964", "s390x-unknown-linux-gnu-0.15.8": "127a53b418e6828816e156bf7ae959f70394ed67882bf9d69bcd15f3b34c6eba", "x86_64-apple-darwin-0.15.8": "153d1801068df606290e832058ce2e5601584ac302788a055d0390adf6c772ce", "x86_64-pc-windows-msvc-0.15.8": "1e6ebd021dc9cefa8b9f15b5d6500c275ec49a0f2da968824845c34f30060c78", "x86_64-unknown-linux-gnu-0.15.8": "45a6ed01c5b32873d4f6239f5fd6d9adde782295261b4a65962d754b3e37a849", "x86_64-unknown-linux-musl-0.15.8": "d541beae99d550ed4abb3a1d026b907886c7cdf44a533b24624871e3d8c81330", "aarch64-apple-darwin-0.15.7": "e573cdb504fce521af501cc16b7018fb6560ac0e7af5d05056c942b3a1ad5a79", "aarch64-pc-windows-msvc-0.15.7": "beb2eb063e52f197694fb79045cef276735a7becbbd8f8f79e1c99613a12d7e7", "aarch64-unknown-linux-gnu-0.15.7": "aee72470734c4220d367b269c3e901b7134485ecc70fe8635ff8141f09d9d11f", "aarch64-unknown-linux-musl-0.15.7": "a6e07403e1a2287ba87676e1e9fd3c6f392d2042ed4eb0ca83cda9d549926bfa", "arm-unknown-linux-musleabihf-0.15.7": "d5f527f70067a4cfaa7218383781ee5e0a5dcc0bbe9122c4fa8f6d1a88a991f8", "armv7-unknown-linux-gnueabihf-0.15.7": "0daac568f418577bc5e31c6c5d53f590c99dc42b740310a627ba0dc99dfcfe66", "armv7-unknown-linux-musleabihf-0.15.7": "9fbc574fcc28e104d0da617ab2655c904185f990660029483897aa76d2e60cea", "i686-pc-windows-msvc-0.15.7": "d6e02b3f65c29c64f443d7f0ebeb3a5a08b12fccfb3325d7ba2e026dedd2855b", "i686-unknown-linux-gnu-0.15.7": "18aa2cb27a5e383574189bf1983c9fdb9b1c6b9c1331f90cf03a5b0032c8325b", "i686-unknown-linux-musl-0.15.7": "02b6f4a2f6abf35e8e657e579e91718fbb36cf75e8f3095f13908d3d33dc4e66", "powerpc64le-unknown-linux-gnu-0.15.7": "ab153c03e331accb127098a8467e415524d8b2035a277f250e0b50908588bcf4", "riscv64gc-unknown-linux-gnu-0.15.7": "cf71700aed80851a8d32cd663e00d22b6a3eb03e17e057e0a63c7aaff4f20c57", "s390x-unknown-linux-gnu-0.15.7": "c854a5cf6537eeaae380d1b4515a9f09a8ee2da45ed71cc230b39b0b6d18638c", "x86_64-apple-darwin-0.15.7": "2cff55e19e759addc871a8ed13cca38a3ad576d483fd2092b8072bad972ecfa0", "x86_64-pc-windows-msvc-0.15.7": "2971a4d16a6b20efc2e51c1f4290ae5d4a85935bb964eb298c9b73f682160379", "x86_64-unknown-linux-gnu-0.15.7": "2253ba7f064023def4b77aaef127756d3724e92a0fc69d666d4692f5c019af6d", "x86_64-unknown-linux-musl-0.15.7": "a70f33ff907cbd05cd3fdcdd3c5dde828123295aaf46b4011e82dce8f806c3cc", "aarch64-apple-darwin-0.15.6": "e90a351ddc2e5e411168b5cbfc7d694231e793948d0a29aa82618ea6f17225f1", "aarch64-pc-windows-msvc-0.15.6": "5e5e28e52fd3246f89d5b46e168b485cb9cdd76cda95b5a46a5d130d7bd85afa", "aarch64-unknown-linux-gnu-0.15.6": "b9183a35a2693941e1089a5a80fd45724df886c135beebb0f8f1e103704af25e", "aarch64-unknown-linux-musl-0.15.6": "750164384c78e208b5e5bf764916f23270844c6a6ea0057dec1f7951bce02fca", "arm-unknown-linux-musleabihf-0.15.6": "8553be3deedfdcecda058bb1e12e06d71ad56a35cb5b1e5a935a71c80f3f2001", "armv7-unknown-linux-gnueabihf-0.15.6": "f778861adf8448f07c12100d7d058b729937c282319c1bbc396864ba658daa77", "armv7-unknown-linux-musleabihf-0.15.6": "db109618d4472d103582428ded89a744c3b6aca56568dbde105eb1e792a06404", "i686-pc-windows-msvc-0.15.6": "5d964d1001a685ecb0ca7d25d0a0584535d4e911140f2f795cfb400711d58f05", "i686-unknown-linux-gnu-0.15.6": "169690de71a2ef6fc2fdea5347f2309d2b016fda4b5d445ce7fb2c9a9f6375a1", "i686-unknown-linux-musl-0.15.6": "84284d143429d886c9a8d38d44770f5f64cf3486ac497df16ac0e90e35bceaa4", "powerpc64le-unknown-linux-gnu-0.15.6": "c6322e95b105fa14728a68993fdab25591a1eb0e9de0c5bdb35081c0bec7bfda", "riscv64gc-unknown-linux-gnu-0.15.6": "7b714890a8de0af70f6e48d4d37b33808d57d343c723a136bf0a68fa16e2c1ab", "s390x-unknown-linux-gnu-0.15.6": "c5f7ac20b04fe31471ee255d8ea27b77b9e4b29e2697492460c977f5e9ff8b24", "x86_64-apple-darwin-0.15.6": "aef752bd803e58a732651d7ecd8434288f2ce7f252e415ecfa5b4a1518aea218", "x86_64-pc-windows-msvc-0.15.6": "34548ff94a9f52c96c75672d34eee6068a4bf4fdcb3ca12d10e9f4b8abedad96", "x86_64-unknown-linux-gnu-0.15.6": "c253b106eb136f9cb4a319b5e3b4a9df78ec31fe15a3822efb69e7887ef9166e", "x86_64-unknown-linux-musl-0.15.6": "7ca0d590da2274429e8033cdaae1d923229ad19b2df7d8c2c3b94451527ab45c", "aarch64-apple-darwin-0.15.5": "f39400f9504c940fa4eb46b02e2d4889a9f86b81ce4c57bda02ea3568894d094", "aarch64-pc-windows-msvc-0.15.5": "c2d4ddc435005768f2cc2c87651474d07c20b9f18150a772b56485966840f7cf", "aarch64-unknown-linux-gnu-0.15.5": "cd01e3c9df2d6c1324744883a796e6693642494f2f6222a4f158da36f84908ce", "aarch64-unknown-linux-musl-0.15.5": "ae22fb3b6ad85cff59abf147d572d266397f42b73e51e6d55dba56fb3430fe1d", "arm-unknown-linux-musleabihf-0.15.5": "a3480f0daefa03518b66fd038cf8461348cbc8efe5e29dc01bd68c89e98f9c15", "armv7-unknown-linux-gnueabihf-0.15.5": "cb8cbe66b2a5face3bc5a94e565ffba313e428f75df4cd62ef84beb164dc83e4", "armv7-unknown-linux-musleabihf-0.15.5": "adeb46fa64c7434503c9958a99a84b3f523ce43f9a1233b54008137101e1c348", "i686-pc-windows-msvc-0.15.5": "aa23d64f605deaa39d0fdccd7b63a4cf12f447013b8791deb79c236dc75364b9", "i686-unknown-linux-gnu-0.15.5": "de7fa298d723016be9a8b025524bfa13faa7f91d36472fdeb4fbc1646be4327e", "i686-unknown-linux-musl-0.15.5": "96398e8a459cd5960aa654dcd0fb158e80cf91f5b1684dad1ee1582158e92683", "powerpc64le-unknown-linux-gnu-0.15.5": "c4b959cc3190bba098596435252ce300bf9e4a4650c7d5f7ebfc94ef0ac8f1ba", "riscv64gc-unknown-linux-gnu-0.15.5": "1a719ae01affd85902322878cb942ce13112fc32c5463146e1613752b47ba538", "s390x-unknown-linux-gnu-0.15.5": "590c125b598fcc84182627d46bd1de22380c95825eea5fbf15b701adbb6c3557", "x86_64-apple-darwin-0.15.5": "1e01b0d6354f14dac0f4de7a89488d18e00f8aa37ce3635b55bcaf1357b2a375", "x86_64-pc-windows-msvc-0.15.5": "9b71926a755bdefa151b7579cd5e19840e9df0ab2828c762241f1b773882d939", "x86_64-unknown-linux-gnu-0.15.5": "ac0336520fd986b3bd7c510b1f9d3049e0d150ddaab754cfa5c5eaf8cbb840ce", "x86_64-unknown-linux-musl-0.15.5": "da9b5c8ba7a789fe3bcf6287ea58ccbac9328a711b7674681706106e7580a836", "aarch64-apple-darwin-0.15.4": "2d63cc9fd12c9cc3b524563bbeb50470cf3f68f3194002228a417a53a2a56164", "aarch64-pc-windows-msvc-0.15.4": "7de874b0d667fe04c2cd15629c19baff6dfff55e1fd99dfb14cb9850b09e7a20", "aarch64-unknown-linux-gnu-0.15.4": "7e436cedadb1bac0166448b05c0b5d69bb1d7879b0b26696bfc198ebdffb7b2f", "aarch64-unknown-linux-musl-0.15.4": "f34909dacbebaf3773ececc0d321e0fa0599729e9b4570f1dbcec91b4c435913", "arm-unknown-linux-musleabihf-0.15.4": "c6b3dfa714d8f2b27db1339b9730d2ff41cff513069c2980870dc1db0c8e6267", "armv7-unknown-linux-gnueabihf-0.15.4": "98c3f14394f9300a66c5415b7daf71959fc72be40ad5654cd5f90e9049eeb328", "armv7-unknown-linux-musleabihf-0.15.4": "1469ec15b7c7a918bc2f34ece38549f5ab77b535c65e1fe983ec167f6afa9966", "i686-pc-windows-msvc-0.15.4": "6c3090b5724dd664b742165fb2dc92b1a8e3c19e84122dab1d2e121982fe1c62", "i686-unknown-linux-gnu-0.15.4": "db95fc72c326f8712a02bdf980f42cccd9745ed2de2f6a8ae02f5be123691707", "i686-unknown-linux-musl-0.15.4": "e54933995834a628dbaeeec26ec96ef506cbeb673c91666f08be36fd07658503", "powerpc64le-unknown-linux-gnu-0.15.4": "b7c3eb76a448e47df049ec721af91c5f5972f9dc6583c3bc6583a9d29c932a2b", "riscv64gc-unknown-linux-gnu-0.15.4": "7f1816df2f56e606a17d39c405295ede5c068566630e9112964ffd3977050d0a", "s390x-unknown-linux-gnu-0.15.4": "934a870f75f006fc9c151f9d65d604bb78ecf8ca8c3f3b9eba2b3c1464116808", "x86_64-apple-darwin-0.15.4": "f40e16784c867b60850fbe96a2cccd123589c90d6db71ad8ade62efdeabccc84", "x86_64-pc-windows-msvc-0.15.4": "ca4db783ce3a1b942e67aa4002ca9f3c6ff1b150a85cb4ca1345c4299ad12a0f", "x86_64-unknown-linux-gnu-0.15.4": "6e24501f753416bc84456383ccf62239889ab9fec8318549db9bee791612bd85", "x86_64-unknown-linux-musl-0.15.4": "e39111195ef761569773562209bbb7f943c834c961f2c1ed28e2126a15c4cd35", "aarch64-apple-darwin-0.15.3": "9135019481619b3d2d797784ed422cd8622d91ea14b0dfe5c7ebe177a98fabb6", "aarch64-pc-windows-msvc-0.15.3": "48716216a212f5555b8cd74f7b6c17e10baf4f4859309d978c347cebd285ea6f", "aarch64-unknown-linux-gnu-0.15.3": "14a4eedcf55d998c317b02670293f7a9fa6d55f7263951358f49e6a0be0121a3", "aarch64-unknown-linux-musl-0.15.3": "dea1c50f06820f27b34a56b3f358522df72b197e3d6d935c0d591562b7d8ceef", "arm-unknown-linux-musleabihf-0.15.3": "9b095c3207272b2fc8ec3426b7efee310e2c205dd98dcf9170ccdfb43c4b7ff7", "armv7-unknown-linux-gnueabihf-0.15.3": "28f0afb652685f810b9ec016b9f215cb0248614f2215c6d4cc7dae408332bfd3", "armv7-unknown-linux-musleabihf-0.15.3": "a5d0c2d46bcfa1636cd74f707220e2f9bc64b2ef2148107e9e99e31a451aa22f", "i686-pc-windows-msvc-0.15.3": "4c2ff5518c9b36493e6f7e3e6b804222f35bce9b8d22a9d8efb4c3a2e9d96678", "i686-unknown-linux-gnu-0.15.3": "9b7a248eb5e9e975cedba6d5abfed63cdb0325b83a7d93a0a4ee24092175e2b2", "i686-unknown-linux-musl-0.15.3": "c47c97dd8f1fdc8a2614db2bb677a72e4f2257f36edf069f97cf082239d036b2", "powerpc64le-unknown-linux-gnu-0.15.3": "4e11a1da6cad901dbd02878808d7f03de857e8e27589b35b3e823775382c7983", "riscv64gc-unknown-linux-gnu-0.15.3": "db8cffb6bb7ed3d299d0d4fe38bc4b53dc8ee04e5c70ddba4b41a130209ee72f", "s390x-unknown-linux-gnu-0.15.3": "16dd01475bdfc2ce4f254570415a04c8803401181d165be8b8be3aea6e6c8cd9", "x86_64-apple-darwin-0.15.3": "890958c88c244902171878209bc91d237d87f55518fb5e3f40ab76a5bb36e4bb", "x86_64-pc-windows-msvc-0.15.3": "dcef126c1d8aa26545149b2e3b43999100b927e4cdd498263669c506982c796d", "x86_64-unknown-linux-gnu-0.15.3": "49eda8819c92b862879b43fa506f5084a9dd2ce0376feed3ffa42a07648cd58f", "x86_64-unknown-linux-musl-0.15.3": "c3bbd085bc0a1438fccc912bf3b25a390fcf9f2bb46dbe67491a9589bff618ee", "aarch64-apple-darwin-0.15.2": "59a3a08a077e81d0fd99566604556687b834edb2da34a69522cfb5168a07123b", "aarch64-pc-windows-msvc-0.15.2": "8cbc83ae19c8653aa7d2127dc70e20730b0c93cb4cd9f1284c1d3973390c253d", "aarch64-unknown-linux-gnu-0.15.2": "4bef1a53089b3ae92cb271d3fd170cfb4834eff7c738d4faae379bb872b9a8e6", "aarch64-unknown-linux-musl-0.15.2": "b1417ad2977d38c93a40cc77b467b4c68d6b5578031852c38033f9b53b26a543", "arm-unknown-linux-musleabihf-0.15.2": "0762e6914f18be4717036b35926763bd36536cd4dc1a22a4e34bbb7fabdb5bce", "armv7-unknown-linux-gnueabihf-0.15.2": "16e5bc1787cad23396df645317267f55495c1d08c2878dc7e3c079042901f95c", "armv7-unknown-linux-musleabihf-0.15.2": "a31f545501d9693162c7d60afcb8362c72a307effb5fcbfbc418e304775e4538", "i686-pc-windows-msvc-0.15.2": "52110333dbf636948facf3a6fd2889acbc658258ead37f3185d0a5fbee925ba9", "i686-unknown-linux-gnu-0.15.2": "b20d9632e412ffb24828e79ad5aed435a067e56cb382c2af529eee51c3b2791b", "i686-unknown-linux-musl-0.15.2": "bfba760dc9f1806bcdacd2c42f5b0c559cd3fa2771429214d9797d1dd9f22d61", "powerpc64le-unknown-linux-gnu-0.15.2": "cf83cabdab0361b3f2707f548a23cc13d018d2e12893cf65b4e438d0882d691f", "riscv64gc-unknown-linux-gnu-0.15.2": "3e151c16226fe40db56d838fc90aee3bf7bf9a437fb1d8fdc1efb285899a37a8", "s390x-unknown-linux-gnu-0.15.2": "9d913855d0c4924df440f28961e49f8e8f460d6a88b7e4ee307f4cb80e0f3c8a", "x86_64-apple-darwin-0.15.2": "78702adcccc2309696f19442f18b5fbe6a4bf4211efa157576c2b5f498a4cc0f", "x86_64-pc-windows-msvc-0.15.2": "82a797f212d2e0c16e6ded37e3768c82af3a8b25d49887fafa56f6417f7fb5a9", "x86_64-unknown-linux-gnu-0.15.2": "278b307eccb4eef6a153d811466dd8170d4fd74970cc4a44c793b40bd897e403", "x86_64-unknown-linux-musl-0.15.2": "2b11788c9457ba8350f9b55bc302adf7f440d2f92a1d9660cbc3b20b6abf5e1c", "aarch64-apple-darwin-0.15.1": "196f6d4bd380f4a03f9d2d3bcfe17b991145a110f5fc9f5999521cd5e5335e1c", "aarch64-pc-windows-msvc-0.15.1": "f29b448a5a3648f4aae87ed1c778f0d9b2cccd40ec5892b2be06c1b568410829", "aarch64-unknown-linux-gnu-0.15.1": "003848ac89a6d2ca1a2ce4e663daec4f90212fc9fd6f338d7cd692c7c8ae9480", "aarch64-unknown-linux-musl-0.15.1": "05a41b8b7c068633b27e8f9149c70154ac2090e61d48e5ea9983de769593d29c", "arm-unknown-linux-musleabihf-0.15.1": "7101665b77808d7756fca4c4a989d23f48f42b06acfb843d98b83644ad9fe61e", "armv7-unknown-linux-gnueabihf-0.15.1": "8985e23e151deafb61015e03e564315805545bb59d2aa0032c28906a94dbaae4", "armv7-unknown-linux-musleabihf-0.15.1": "225fe8ab820c362bcea3c84cb7d60376b85c790bafa938a4ef2f2be0b4963213", "i686-pc-windows-msvc-0.15.1": "d9cfcea09126f510a675374f308b9b8abd7537e87ed1db3dbebf7211ed6d8fec", "i686-unknown-linux-gnu-0.15.1": "7a500cbb644e78d9fef68eaceeb01d224db1003d482a54e3412104bc616afc69", "i686-unknown-linux-musl-0.15.1": "dc55081b5eadd32cce183077862f29a693d38ff0b93992ed1144d8167fa39d94", "powerpc64le-unknown-linux-gnu-0.15.1": "6ccdf65f4258385b1d30e542c7eca97770f29a534619d66aa2eacce44ce6f5ce", "riscv64gc-unknown-linux-gnu-0.15.1": "1372c269badc8c6b8116b8871d41e2af38bb8ad11cbdcfc6e4b4a2865afc20af", "s390x-unknown-linux-gnu-0.15.1": "04fd2f54ac619916ada72d1566c9edbaaee4e241e01897918e0efacafa251248", "x86_64-apple-darwin-0.15.1": "55fd4437b4b6b0c75793525c980bb1d49d9723044edbdd7dcc962cb595d26d51", "x86_64-pc-windows-msvc-0.15.1": "4bd4d5bb5b3c3fa44a4c3d4748dc03f9fbd53808ff2d3adda75e50b1ec1374e2", "x86_64-unknown-linux-gnu-0.15.1": "f63d467b81ef1a7a8552fef001784215bb2fc4d7a7e32216c48aaa3bad066779", "x86_64-unknown-linux-musl-0.15.1": "c8d04b4f6ce053809d98d1ef99f897c52e6204708bb157551ede7fbab505fea2", "aarch64-apple-darwin-0.15.0": "093d355ac33c6b8e91e80b8497d5581c61b028c0405e265cf38fd88f9a291c5c", "aarch64-pc-windows-msvc-0.15.0": "14ff501eb6e436f7a8062c6def7c41888926e8890fcb44db169ae033c88751b3", "aarch64-unknown-linux-gnu-0.15.0": "abfde61faa5381537feb0493065120b1c363bbac1d608ec92fd6cd84daa8d6b1", "aarch64-unknown-linux-musl-0.15.0": "b9860c394ea814a9e9560e80bc798c53b8a3a5120ce961a2555fb563cee9f73b", "arm-unknown-linux-musleabihf-0.15.0": "fbafa4c0e3c125f80b32faf575a7fc21a7d6e4d6889fcfc2425d03ac52a23fa8", "armv7-unknown-linux-gnueabihf-0.15.0": "f622dfb00984e2850b5da02db6c6469214115634a4a3e7875f75d5b097302354", "armv7-unknown-linux-musleabihf-0.15.0": "093fb4d9e3e8cfda389ccf6b1a1030d83cadb429de889eca045fa2daf848a725", "i686-pc-windows-msvc-0.15.0": "09f178ebce6bd6b48422ba0fbff00d76a838aa24fc074c081929a6faa4bdbd31", "i686-unknown-linux-gnu-0.15.0": "8e1f5f5c62d82a5e8aaa316c0236380282f89b5e4027eaa631c159c7f8daf7d2", "i686-unknown-linux-musl-0.15.0": "cf125895296f7f22714f01298d79885aaec9c25cdd7b648cfbf92a583dfd7ad8", "powerpc64le-unknown-linux-gnu-0.15.0": "d62f860244824c34bc66d2941cf95842bb5988cce13cf2a9bde5d361557e7fdc", "riscv64gc-unknown-linux-gnu-0.15.0": "e76a0be3e0ad5733aed2f69e242d3d4af92ed2522007a0ebe846b4f37383d2ab", "s390x-unknown-linux-gnu-0.15.0": "3e414eabe22173a5b246a2b5b432ef9232b605fb1b3323f9b2968ea99e1d05fe", "x86_64-apple-darwin-0.15.0": "09fa6fe0d4172e1bb84cc6d937a0e1f42ff84c90b61163fff4f31c51a9c14879", "x86_64-pc-windows-msvc-0.15.0": "d1613f4231095d160ab4d3487bf56de23f29945888bcbe4521fcb0cb5e695d92", "x86_64-unknown-linux-gnu-0.15.0": "b38e69fb31501ebee3aba8e1778547bb2557adaf6b8f9dfae6f05980ee68b8ed", "x86_64-unknown-linux-musl-0.15.0": "f2bd69f091517ebc49405319a6e7818b1037e250b8d539336aa0b91c44ffa4aa", "aarch64-apple-darwin-0.14.14": "76a9b0ebe57d0eee56940dbe0b62462578d1369cca8314ed0d2a6f2102292d4f", "aarch64-pc-windows-msvc-0.14.14": "449982699657bd68d170440dad958281b030bc05865fe012d043cd225e78eb79", "aarch64-unknown-linux-gnu-0.14.14": "1eee1ce3467fb5f348738bb5e4598859b55816a79c3cd6a26ca0dae03d7e2672", "aarch64-unknown-linux-musl-0.14.14": "a4d7302aa201a6f8e71dfa217cd8273fddd4e434a93ee3b4b07047fd7a684ac1", "arm-unknown-linux-musleabihf-0.14.14": "c225db82587780d1675e220db02c5209f406b29afb0a525628e11ffaca537068", "armv7-unknown-linux-gnueabihf-0.14.14": "cdc9596d6317e6cb32fbf3fd6c0e5817f96676b215957e6583db28abf4a15427", "armv7-unknown-linux-musleabihf-0.14.14": "0f1938426c50500bac09a09df5396aa19d6ce9f01a3a18a531dfaee5cc0d93e8", "i686-pc-windows-msvc-0.14.14": "4f6af9d82acae3d1308c55b0fa51b84d57eafc380aedf97a53a32314118c9a71", "i686-unknown-linux-gnu-0.14.14": "5ceb5e2f1906d85e444cb71503379e14d96ded423bd68906f1a539b78d9fc2c3", "i686-unknown-linux-musl-0.14.14": "878cebcaf3481295d22a1274cea94ec050455917669ccecac586dcfe6b4a557e", "powerpc64-unknown-linux-gnu-0.14.14": "e01a6db6bbf15db82052269887fb49e6be79923d188f1f60ed74f93b6b9a90d4", "powerpc64le-unknown-linux-gnu-0.14.14": "6048f270a46cce01228a53fde14fa6182a99d9e99169d7c252f706d7ba2a4845", "riscv64gc-unknown-linux-gnu-0.14.14": "6eca650195a22c0a568adc923b645b6317dad3ecc8a3d5c02c08768d6b333393", "s390x-unknown-linux-gnu-0.14.14": "dbde3ba91f84d8c183ed49bca0790777285d21381ad64a290584bd19038b83a4", "x86_64-apple-darwin-0.14.14": "749396c675c6f07205be6c4ef89e2e95123d790062d681059a355030e9d7d119", "x86_64-pc-windows-msvc-0.14.14": "81bfeed34f15296e6c81ecea912b6fff4430b957de8a1181ce9365434e3d6744", "x86_64-unknown-linux-gnu-0.14.14": "9876634f799d933bdaa1de864f47d26f898b2e20aa8f4f85d63235c3a231068d", "x86_64-unknown-linux-musl-0.14.14": "55a1ee65f5ac9416cc40f99c2df62f0d4525d40369fe371caff945c495174d57", "aarch64-apple-darwin-0.14.13": "067d1a90da8add55614eff91990425883a092d8279d9e503258ff8be0f8e9c18", "aarch64-pc-windows-msvc-0.14.13": "f7b5b9740ae893ac6abe9b9f68865073ffb9146a6f352ba9718d53b102ad02ef", "aarch64-unknown-linux-gnu-0.14.13": "84ce8fe1ef9b2eba018ba396fd018ac2bc22865a9e2a02573899ea6ee8e1e5fd", "aarch64-unknown-linux-musl-0.14.13": "25941b777ff712f4d9473d26c1b875034214a3d5de20ea99b2add939dcd0b367", "arm-unknown-linux-musleabihf-0.14.13": "3d833d451accb334f9cb91141083bbee5b835dcf0b49d14e5ccb13e0b6a7c387", "armv7-unknown-linux-gnueabihf-0.14.13": "90aa92a6de0f63eacb2d380c324039c101c6097956690fbaec05ed8d922f8766", "armv7-unknown-linux-musleabihf-0.14.13": "192deb53946b4309c56c1ad7c401ddac7557d0a517da7addfc636f1188bab30d", "i686-pc-windows-msvc-0.14.13": "4ead4d5fc89a1f02aa97dad944e69306ae4177a689a3818d3575fed11aa994fe", "i686-unknown-linux-gnu-0.14.13": "a321fc4862748563a663472a4458fe514e34542d0fe8d767d67b1463d585fb2f", "i686-unknown-linux-musl-0.14.13": "597541ac81d553c2fe97339680bfdb3e926714763ee37f0b5dbcc572d695e376", "powerpc64-unknown-linux-gnu-0.14.13": "cad4c05db54969608ec292b695397ddaef7452f759b976a60b69d9fefc6c5724", "powerpc64le-unknown-linux-gnu-0.14.13": "bc7faa37e496ae0198ee7e1c9e8958df3c55025ccf8be175b74533f87626e726", "riscv64gc-unknown-linux-gnu-0.14.13": "d9c6fd360347b9b0079994246ed08186f64629529e2fd2dc1a97a31da2a214d5", "s390x-unknown-linux-gnu-0.14.13": "1995227a65970cb2c1aa3b03c9a5418ee1fa56210c4577e6f8e1a14d1e79ed5d", "x86_64-apple-darwin-0.14.13": "69e424a42ac3a7c6c7032ad96deb757c35c93c848b6ea329a3f4c605e6d89ef9", "x86_64-pc-windows-msvc-0.14.13": "d2af4376053458f283d74980b49dc0d61d3ef9d9b8684c5b25bd64b73e11634a", "x86_64-unknown-linux-gnu-0.14.13": "b1e03e4cf245411f184106ba3d973b3902021bf5327e2fde0cfad163aacdc2c1", "x86_64-unknown-linux-musl-0.14.13": "2fe394f493318551f271277a2228e56b31ca69a4842483e5709af4548f342bc3", "aarch64-apple-darwin-0.14.11": "c3fab6bcad9cc2f8a342829dd4ea011c54b9671d023b71baac1cbf2b3526cefd", "aarch64-pc-windows-msvc-0.14.11": "43faade7e8f33a8ffab726aa44ee2b6bc1fd9d51407320db797dcb3dac068461", "aarch64-unknown-linux-gnu-0.14.11": "e5c018ac042ddeb9c02c3d96b6efe3a0dcd3406ba9bd695253d6111785f7abf6", "aarch64-unknown-linux-musl-0.14.11": "4779a99b51812b56d56d180174be46ddb2fed98fecaea7565b450d37cff1b8c6", "arm-unknown-linux-musleabihf-0.14.11": "a400347f59192992b61dc0bb9dfdfe640f8063403112d9e3a70f6275d34ae386", "armv7-unknown-linux-gnueabihf-0.14.11": "7938729417dcd33b7078ae0a77440cc152bba33518bb095e19cb108c132b2602", "armv7-unknown-linux-musleabihf-0.14.11": "57da6726050047ff2989554734deb94eb053789fc92c297a1a722a6723106a77", "i686-pc-windows-msvc-0.14.11": "51bec5b8cdc4008fb76e11eba4cbb62b8617ff242d316465fa2247dabfd2dcb9", "i686-unknown-linux-gnu-0.14.11": "9051f2529d36e38b58b03b6e605d77f62b6378d5afe70eba692f9a214794b273", "i686-unknown-linux-musl-0.14.11": "3f94ba805fd14bd8c088b710c950cd89d9968294fa3cff68a618e50ad9dea73d", "powerpc64-unknown-linux-gnu-0.14.11": "eb69c9da0285717f39ed25f666a0860d7d6a50359a1de0bf76fba6f83d59e1ea", "powerpc64le-unknown-linux-gnu-0.14.11": "001b43b7558d32f320fa775c74af0035952a724d323bb5204b6f83017297c6db", "riscv64gc-unknown-linux-gnu-0.14.11": "8901e1a36846c59a94ef468808e4a1af58f74e9c2830f40e045f5f9e70d6867c", "s390x-unknown-linux-gnu-0.14.11": "d29ba2740b7735ab20663225dd420acfb0797b29358d902afc7b87ee0f1f4b08", "x86_64-apple-darwin-0.14.11": "b301d1c04facba1004d180c8fd9ae36d868b780900682c97ecf324015c75f0b3", "x86_64-pc-windows-msvc-0.14.11": "e254f04e054e095215b8f74d5cdb7288f2d3f226bdc42b35cd44751fc7a55b2d", "x86_64-unknown-linux-gnu-0.14.11": "b98f19bb2cc99e0ea4de1625fbc43661902a1db45ff49a72e7f4a58cfedaabfb", "x86_64-unknown-linux-musl-0.14.11": "8e8b7a3f791e0faf3a1728d808133f6f9bd5c1422eccb9956e7e7376ff5404b8", "aarch64-apple-darwin-0.14.10": "dd0f3ec914604d802658ae0d271ff9d767c117d1702a44222170dd2ffbad8d2c", "aarch64-pc-windows-msvc-0.14.10": "a5b5bb9525a47dfff0ce8ad31546549b31dc1184f54027517838b1bbc9d81129", "aarch64-unknown-linux-gnu-0.14.10": "f6c8735bf175d449d79151f6bfe84251770ca6032e86bea0d327bc3789179027", "aarch64-unknown-linux-musl-0.14.10": "0888883f71199ca3af3569052d0cc1aee8b316390ffe75bc19f9a8047ffd0158", "arm-unknown-linux-musleabihf-0.14.10": "5102cff6cbed54953d6cd9c9d920a9dd6fbe283e047136a6e9bc732ae14a5cf3", "armv7-unknown-linux-gnueabihf-0.14.10": "94a3ad56d89c39ed47d4e864a18ea31baf989384840d5e182c3f94d5f35a4c93", "armv7-unknown-linux-musleabihf-0.14.10": "2a051d384d5d5fa84521f843424454620ff5d22580f90cd882512373c36933b0", "i686-pc-windows-msvc-0.14.10": "29e7519db7afed48e3729d16289a467acae7c6c34113d50bdd1e7e1077e1c7b5", "i686-unknown-linux-gnu-0.14.10": "56f98f880933907b809de3180e866e72342971024445144c409a6d0a46237c1a", "i686-unknown-linux-musl-0.14.10": "0cce7104a85d2891a9f62d9ee2decb942b91888d6156e4e858c1cb350a71a57c", "powerpc64-unknown-linux-gnu-0.14.10": "7685d9de6c1b139fd767f70310598a79d5b6c613d744a366b2fe99e420d19c32", "powerpc64le-unknown-linux-gnu-0.14.10": "620476793ed106c1f6bfa15e3b0d7834a55cad048a853d63f0c118b9fb7c7337", "riscv64gc-unknown-linux-gnu-0.14.10": "922872274af2b681381b46a242e77fa9bf427fa745313e818b89a6246be81d77", "s390x-unknown-linux-gnu-0.14.10": "da9cf8172369821dfaabfc8861238f565fdbcec1aebe897d900020ce561572de", "x86_64-apple-darwin-0.14.10": "7d5af84e84a189b49ac235d7970d35588cbed0d087f4237c96e5ac3c392bc6fb", "x86_64-pc-windows-msvc-0.14.10": "9c3340d322fff7a6dc132b8783ba734f5eaf4c46f7dd8bc828abdf850b3bebe1", "x86_64-unknown-linux-gnu-0.14.10": "4695e6375b1fa2b9c5f839218d695d8e701cfccb15d3f622b6a6feedb086bffb", "x86_64-unknown-linux-musl-0.14.10": "e1fac6f2705057f48f3d000694d0f41c95b06e738cf4825315c670f3b9d24933", "aarch64-apple-darwin-0.14.9": "ea132e6d6af23dbcf21c81d7fd8c5a94ccf16b1fb36a8bc60da971e339301f10", "aarch64-pc-windows-msvc-0.14.9": "dcc2c8a687b9682ab345418ba2793bc8594ae1f2bdb78af520b363e17cf2e271", "aarch64-unknown-linux-gnu-0.14.9": "423a07140aca7d007d63a42ff9322c0c2017dfe0ed23efe8bcbc36ed21d1cfd7", "aarch64-unknown-linux-musl-0.14.9": "9bdedf2e8d6398e193c2b2feccb2b4c9f8d37a6dc87cc0b587340a60e87d14e2", "arm-unknown-linux-musleabihf-0.14.9": "5d04fe5dac3a625c576f48d441238896d164128ec5ba64c9964e5d9502e92b1e", "armv7-unknown-linux-gnueabihf-0.14.9": "1404c9aace1216ad5cf8b977be5b967ab507f7245eec7bc9bb3fab80010a7769", "armv7-unknown-linux-musleabihf-0.14.9": "e90707e761fb9ce528c3728e5e12ddbadd60ad45dbacfb1ab9dff4b308f10ae3", "i686-pc-windows-msvc-0.14.9": "a7e19280ec509dbefdffd097e29f0ca411cca7196a7272198d022d22d5fad6c3", "i686-unknown-linux-gnu-0.14.9": "33494807d987983f1a91e486cc6a028364aa3291c96c3784620f75a3f477411a", "i686-unknown-linux-musl-0.14.9": "816e6fdefd899f2dcca7261dc6575ecac82907b94238569cbfef2b1639680865", "powerpc64-unknown-linux-gnu-0.14.9": "6786baf11e8b59c29d19c0da127451606837243472797aa5084eecccd9a74445", "powerpc64le-unknown-linux-gnu-0.14.9": "ba7219c9dce6f2d931d9851ac9623923b3fc5dafeb08c640885c7e33a6074775", "riscv64gc-unknown-linux-gnu-0.14.9": "8f46292b808c5ce0d72d1a4428e189a641d9f41b3af0b077537ddb7631f48b8d", "s390x-unknown-linux-gnu-0.14.9": "d795afb56c7f4ba55a7a08eda03bce1fd8b32d71c9cf1741218ac6b5578d8b84", "x86_64-apple-darwin-0.14.9": "ce980eb4b44a84cbf278686f8cf71a21b353888b29472ca269ffe385ce4f2351", "x86_64-pc-windows-msvc-0.14.9": "98727a845f01782b78efe1a3f0913aa9ec76c9a24e09aca89e26b3b684ca86a0", "x86_64-unknown-linux-gnu-0.14.9": "b012ebe5dee8d8c125f4d553fccda058249fbb1c914c17175c6edda14a1fb7da", "x86_64-unknown-linux-musl-0.14.9": "3bdbdb32f95bcf2c5bc45502a2050f30706f1c205fa0087ee3d4c688f67854fc", "aarch64-apple-darwin-0.14.8": "4efc019832a6b9225f650ee256d31b2e875021cae662963d533c78b5cf865f52", "aarch64-pc-windows-msvc-0.14.8": "965217e69f6d43e4df25abeec7b51a5ea014dbec219b9b2866ca37dcd312405e", "aarch64-unknown-linux-gnu-0.14.8": "9bbce62639bb30abf76202f2ec32c4234498de3c93c21b4c32c99d51c802cc41", "aarch64-unknown-linux-musl-0.14.8": "0b3464f54fa56f514c29e92bcf05867b914ad6c246e2ddbe4cce5c0700f2a3d9", "arm-unknown-linux-musleabihf-0.14.8": "5496ae4d581e7f6cdf509f56d33830056d1f8a432aa489bf9e40fc9754fbf1fa", "armv7-unknown-linux-gnueabihf-0.14.8": "203de1734ffddac18f02e3756ba0c02bd1770665031aba617ccf488ccfe78b25", "armv7-unknown-linux-musleabihf-0.14.8": "5e424ba3ebc90306f73e05914244245b66b27c3a44dcdf9029d97bfc56131491", "i686-pc-windows-msvc-0.14.8": "2bdff511119eb9d94e5a240c15bef668c43b0640e61c549b32242d7b04efd062", "i686-unknown-linux-gnu-0.14.8": "8f0c15e9518d1b9c0423986d3d1045ed5c4005e1037589a6772eee724ec3ba02", "i686-unknown-linux-musl-0.14.8": "55326d64201ff99dc96e93b23de951c2656825089ee581fc8aee099140d4d310", "powerpc64-unknown-linux-gnu-0.14.8": "52ffb3434ca8ada1d2703df0c4b929758444c24d9a47a8608a0775ddf6dbfa6c", "powerpc64le-unknown-linux-gnu-0.14.8": "3a8808f7b02f37e649e1cc1145ad3d2e4d23b4154637525480c7f6536f4152b9", "riscv64gc-unknown-linux-gnu-0.14.8": "8e6f1f660c1145bfe1b13fe41b7e6f4e829be3351bd536acbd41f91478d8932c", "s390x-unknown-linux-gnu-0.14.8": "f3ed19ba06face77e21c682846a4e5b3d4d9bfe5132eea86e30a84522b70d2b3", "x86_64-apple-darwin-0.14.8": "c53af0ba3cbc5e9e8f7768d28a7ff2d0795843e39302891093227bc6df343e94", "x86_64-pc-windows-msvc-0.14.8": "a837e98f5e6a21222a896f60521f563aea2c686a07cad17da9f5b5f2c4e04f8a", "x86_64-unknown-linux-gnu-0.14.8": "dce933cd68e3ca69c64c277ce6671dcdee7adeeaa6ac5a15047a4c973b30741f", "x86_64-unknown-linux-musl-0.14.8": "0f5496a3d2413b3cb85bbf9e4a6f95b5db127ac10989ecb3d8c0c0a0a74a892b", "aarch64-apple-darwin-0.14.7": "24631da81fe9ce5f4112e8caeb71957e81682e752a563f0a50715735f923e3c4", "aarch64-pc-windows-msvc-0.14.7": "24ca141d57fcd5bd303ca51af002cb9a815f072d9076b40ec2813835d46c4a82", "aarch64-unknown-linux-gnu-0.14.7": "8cc84635155dfc11acca297af25ed6c8a30e36146729a90df9e7d348a8fc0a4d", "aarch64-unknown-linux-musl-0.14.7": "8d429dbc2c308377c33874dc71d4c2388728f0d01c0a5869d2c878d21a6ced87", "arm-unknown-linux-musleabihf-0.14.7": "3cf1d9fdfd58a113b0b629e0ef2d247bbadbc8deec25724d6dc7d6f6ca7e7304", "armv7-unknown-linux-gnueabihf-0.14.7": "058f52b31c88056291b0e917ea909eea036570dcdee32af1ce62eacff98c4e2a", "armv7-unknown-linux-musleabihf-0.14.7": "9dddf78485ba0b5da8d8a73b24332ecf759a4de95ca5700c5141067683b5b615", "i686-pc-windows-msvc-0.14.7": "46d16810e1a0e7efd5c25efc60b719225c3a8b8a7fb662b61f293eeb62ccafdb", "i686-unknown-linux-gnu-0.14.7": "29242e501fea264ef4cb03164d9c375e426fad5c298412f64a4d50bc9ea19bc1", "i686-unknown-linux-musl-0.14.7": "5b1eeea3f27745e7e68b19bd214267aa653ef64c62c25ef4cd8bb57af8477171", "powerpc64-unknown-linux-gnu-0.14.7": "3cc47bf9943a46839d847746ccae59a3147982c5bf93bdc786fa5279d7d28681", "powerpc64le-unknown-linux-gnu-0.14.7": "1dabc7d0251f6f11ade20620538daeed1c4d27223576a04ddb2a87adfed2ca11", "riscv64gc-unknown-linux-gnu-0.14.7": "075232dfa5a03ef399d183879848cdb5d71485639c2a07fc62a27f4d4a68af3d", "s390x-unknown-linux-gnu-0.14.7": "a83cb05567dd4bb59fa8fd36b8337b21d475dd6f82fe0600a2364f1de6c295c3", "x86_64-apple-darwin-0.14.7": "c3035811c5354d923f3d7fd6320cfb23de30600f1eb86aa1518bac27c3d7fffd", "x86_64-pc-windows-msvc-0.14.7": "9a54b82e12574ea068e0914cdb1398993cbf78338c0799b6f9003a783fec779b", "x86_64-unknown-linux-gnu-0.14.7": "8a545d346b3f6f979574df96b4fb2a983f2568fe200f1c1f690bd2cbdce5ea51", "x86_64-unknown-linux-musl-0.14.7": "0f6cd59aa2b266758f1083c73f1b8303e3aedde0d953f0e79777faf174d8104f", "aarch64-apple-darwin-0.14.6": "b2ace677f51d0f2b91ca27d312ac8b069658502049015f4891c16f8864136282", "aarch64-pc-windows-msvc-0.14.6": "90518b6d16fe8b705c891dcdd77b20ab41da5e042b085aced7bbc647f6f2fdcd", "aarch64-unknown-linux-gnu-0.14.6": "bf3d592d5f879f072520afaa9c4a76a3ad0f6cf4b7bf7e27fb5d0e728e863f14", "aarch64-unknown-linux-musl-0.14.6": "4d3c113e59c5fbc31f1def566cebf28732bb45ff6b83df8e142bc1c055b3afa3", "arm-unknown-linux-musleabihf-0.14.6": "d0a3ed0a773f8e7edc44d63644b952d446dba771fdbb3eefd02853c323373f90", "armv7-unknown-linux-gnueabihf-0.14.6": "d6b71f6a951963f8dd0f2e099206b0aabf95d9bb49451a607da3e5823b800596", "armv7-unknown-linux-musleabihf-0.14.6": "a048f1e9a97afe8ac2a63785f5733d5736b9d6e6767b4d5b6434916d38f888e1", "i686-pc-windows-msvc-0.14.6": "c7b76311939f0ed7fbf4fe1be7c6c96c05b26a73e500650dff2586cbbe5c0b45", "i686-unknown-linux-gnu-0.14.6": "fe3fbd9227a7f2c1277306c31cf7627ab1dc61c25fa30854d66d8db138a74872", "i686-unknown-linux-musl-0.14.6": "5a184f4c1e6a665f56f980464dd87eeb75f32e37bf67d195efdaa41bba634a5d", "powerpc64-unknown-linux-gnu-0.14.6": "fe54fda27408241e9bee7bc5c9740a9a47a87a073ecd3d9bb166c32329c33958", "powerpc64le-unknown-linux-gnu-0.14.6": "d4296a0f41ed25cbf56a04b04bda7f3661b8be9d3220b89cc342e6cb4e6ee259", "riscv64gc-unknown-linux-gnu-0.14.6": "e06b714ebb8846421ed6b998beac66a7fd1fad09f7bee89e4e6b671c6e8c3fc3", "s390x-unknown-linux-gnu-0.14.6": "2ba3e5b6e66d9ba60d6fac9b699f77dd79402c872fc244259db7fc7815180b3d", "x86_64-apple-darwin-0.14.6": "efe45a6defcf4f1b6de87d56ce94635f53b00f88ddc2fcb8e25e2c4e3a61261c", "x86_64-pc-windows-msvc-0.14.6": "3a8bb3499484c7f9e86060c89d0e61c47dac7f9fb4d7fe46bc59dca400b322c9", "x86_64-unknown-linux-gnu-0.14.6": "b0ee141ada4749c7ee16ba21465b4ef035455b495aa3ab951bbcb9bde9f4d001", "x86_64-unknown-linux-musl-0.14.6": "7ef1743875c7c469cc1c4bb6da6a9bbff3f3a7b89a75632d6cd2944ede470a5e", "aarch64-apple-darwin-0.14.5": "c07616663ac63792c16269d6798a47fb1f45b29997706178d60e90da698a9970", "aarch64-pc-windows-msvc-0.14.5": "c09ff1cdaafd6cc3733586dc517bfd3e0d0ddc39360c90343ab7b610c8ade130", "aarch64-unknown-linux-gnu-0.14.5": "da5692a609e728dd1773aebf087113c5c3561aafdfa9fe574b30de9438c60a23", "aarch64-unknown-linux-musl-0.14.5": "ebef9d7119119e67b1065a5a35128148898e1581037e7d68c3aa9223983af0a4", "arm-unknown-linux-musleabihf-0.14.5": "00c937e44474d21878bdb2e9e214d74005fddc8c43a4c76d8e71a9085c7cc6af", "armv7-unknown-linux-gnueabihf-0.14.5": "aa54fcaba5d7029180139491213f504e5789b36e0017c0a67aff7b6ec0c04c45", "armv7-unknown-linux-musleabihf-0.14.5": "5e06c211d5dc4e85eeafd29e87af4aed690a41b02f9296537d4d4ebe62fded9a", "i686-pc-windows-msvc-0.14.5": "6b54cf61dad3276995d157d000f501917f1aa54735391150bf93282329253c92", "i686-unknown-linux-gnu-0.14.5": "81aadc05c630e7e7c4ca68c510f5ce462e0645fa03650ca3f844cb4d9b2efc27", "i686-unknown-linux-musl-0.14.5": "556c63188c8bc7e253a4eaef8727857a808a81af6fef02f76f27a71e800554a0", "powerpc64-unknown-linux-gnu-0.14.5": "df85081b5e776d934188f9eb67a1d2d17dba1e986f7e76668ffeed6e541858d1", "powerpc64le-unknown-linux-gnu-0.14.5": "4a02aa69a73bc5d9e579b08f5081e0fec412e353bacafa6b4a0705d89b3486e6", "riscv64gc-unknown-linux-gnu-0.14.5": "a1a20ddca6e776a8f38d533da4aa1eeb543ecbfa08813c482e3cb7d5ef0c39fc", "s390x-unknown-linux-gnu-0.14.5": "242bf290de417e8c9e8ca5c844be933e611cca3f3b301dc8537f72d051ceb3b9", "x86_64-apple-darwin-0.14.5": "d7285770c5098be00c9b4ff099d6ef7f8b2a54b4019c9507b628ee9f0d404c06", "x86_64-pc-windows-msvc-0.14.5": "9b998bf1a790a18b829fab3368ee7404a8f1f2cec2acb650aa1fd1b74962d023", "x86_64-unknown-linux-gnu-0.14.5": "5bc52346f81098e42beecd622f49c4336a5361eb38b7b51d466b0a9647e99e33", "x86_64-unknown-linux-musl-0.14.5": "69ddecf374a4f53eeda238399614ed6f92c5e75fe04436c604fb78435d5658eb", "aarch64-apple-darwin-0.14.4": "ab26cd2b03d5b2ec42dc7ac1886a29055eb2003aa2db14b26c7091c7cd6b4c68", "aarch64-pc-windows-msvc-0.14.4": "270773b34836e5b546d3ec9fe3b6cab4057881eff69828566f230baffff7634a", "aarch64-unknown-linux-gnu-0.14.4": "8bf03ef4bb8ce42321ea0e59a505739b29b18d85b1d4f220736e242248b7da31", "aarch64-unknown-linux-musl-0.14.4": "c77b72e565e9044eddce02e71f9214edea045047b786bb2bc973a6d8f94fb13e", "arm-unknown-linux-musleabihf-0.14.4": "5211b338bf1c48faa2fc045bd68c56b50e1e3d898f2255c39a3a7040033738f1", "armv7-unknown-linux-gnueabihf-0.14.4": "62e05c9a4571ea1aca80db377b4a11dd2325100db9ca0d7db16b61b87cb3d0b5", "armv7-unknown-linux-musleabihf-0.14.4": "b20725ed5be925b58120172b2395bdbea9857bc562c3a7a7e47a4d9281bafb7f", "i686-pc-windows-msvc-0.14.4": "bbe517649a5c6134b424b3065db7b5dcfaed72c2f5e848ec87cb2b33be7a133f", "i686-unknown-linux-gnu-0.14.4": "a68939e63f7b384351172ff1535d37e73ecf81a94b0c89f369f3f41aabcccede", "i686-unknown-linux-musl-0.14.4": "ff05a300bbb06211ec9cc43daec05da197ed116b5f6a5ea9ac8fc80fc00df39f", "powerpc64-unknown-linux-gnu-0.14.4": "394eae2ad3485eb3530db3e9b51feacbf0b03e63ec8e93f2134a137c59da4abe", "powerpc64le-unknown-linux-gnu-0.14.4": "b12b41763fa3c1068d2378669fa2740b11e0dd3dea3f667f732241a25fb06c9f", "riscv64gc-unknown-linux-gnu-0.14.4": "c6385274d7a3b1d0c7ed05b36101faf2c7206e8adc0c7c107d32fc8e5d57628c", "s390x-unknown-linux-gnu-0.14.4": "dcbf1dce38298dccfea7edffb1ea237ab2ccf2ea5dbae6d5b2dc4fe88177b094", "x86_64-apple-darwin-0.14.4": "041b9429400bfc3aca8402940fe6fa0ec33f9d79e8f50fbfb3063f70b4327fa3", "x86_64-pc-windows-msvc-0.14.4": "5541af69b1f342d843f8fca6218bd0d5d9064e987d14405a2abf60ce94c615a4", "x86_64-unknown-linux-gnu-0.14.4": "c9120e68e358eb0f850123537afe18945f9095e9f17967944fd23585fc88bb0b", "x86_64-unknown-linux-musl-0.14.4": "dcb5b42fd364c9e837b6800886564a891d023c8b87c967224351399cb1cda154", "aarch64-apple-darwin-0.14.3": "fc4c2c153656bc4082fb6c928fbd6867d5eb932240b663b329365f3f1821fc82", "aarch64-pc-windows-msvc-0.14.3": "b7ed5d2006b1c43559e78d90e65f2fa1982bec3976de74978485660fcdd67548", "aarch64-unknown-linux-gnu-0.14.3": "daa9edc586b669079fbe204bf5f5b48ee05c5dac862d2daf5ad72d3c2777834b", "aarch64-unknown-linux-musl-0.14.3": "571058fe7e3381ad54bec8b3d9d127013e332d822b35978b503722147aa3b9cf", "arm-unknown-linux-musleabihf-0.14.3": "f5e9b79cea63116ad582ffb514a61a506978762b67859b9e9e9cdee4b2ad065d", "armv7-unknown-linux-gnueabihf-0.14.3": "07094c107682c58260d652708a0c8b2f3d38bdffd5e7ec9a81785e665154a137", "armv7-unknown-linux-musleabihf-0.14.3": "edfd2491e25383de77f60aafcbd5451350b2cb6f9af38b6cf5a2e725193333cd", "i686-pc-windows-msvc-0.14.3": "f46525c0684a220c063c1c1f8d516c8cccab8ec9f62417e17e02cd4c1a138417", "i686-unknown-linux-gnu-0.14.3": "c7180e275ccaa97eae1528a15a08828cd9aaa15b57d3828f8722b0edd347046d", "i686-unknown-linux-musl-0.14.3": "60d1db56b1b4064b00f349b5fc8e11f2e63b8fa3bce4679f9c9da91356d6c3f6", "powerpc64-unknown-linux-gnu-0.14.3": "b9bf7191d023fcdd938e51fa53b63226897a23896f82057fe32fde9df10b1649", "powerpc64le-unknown-linux-gnu-0.14.3": "c1f5e497fe183dc1e0b6bb984573a0703182b68ac07587add1cbc370957ebd20", "riscv64gc-unknown-linux-gnu-0.14.3": "909e92469524b80520af17537df55f245d6ba018928bc486fd8418e9983b539f", "s390x-unknown-linux-gnu-0.14.3": "d8c56807e9827f391e1266bd19e0235fa470a0620cf166975365862e5bf9e908", "x86_64-apple-darwin-0.14.3": "076e88da3dcb38d3fef61daccc759bf29b605a490143ae707c0e067ebf8d7050", "x86_64-pc-windows-msvc-0.14.3": "ccc1bd362cca52a7fb7f9ee2cec7317c139ccb86e0964a5c1d4b14efbf2118ff", "x86_64-unknown-linux-gnu-0.14.3": "cb8a88912aa91a1864ad662c24df4514699ddfcbc52e684218aaf5ac57d7de0d", "x86_64-unknown-linux-musl-0.14.3": "58fd05427420df7b7b51bc6bbd5a430f38d2dfd63c74660f27625a4632f12532", "aarch64-apple-darwin-0.14.2": "33225f67ce61188fce91b801ab50a4028f8b0d66abbf81810841dd7d42371e38", "aarch64-pc-windows-msvc-0.14.2": "4fb68c66c719b337c2364aeb8210326a28b8ae046ef9a9c90407d473264515dd", "aarch64-unknown-linux-gnu-0.14.2": "a907d6a13120679b7194eb61beace09103f04b90e32cf7c2ac11979e6f618e35", "aarch64-unknown-linux-musl-0.14.2": "e323e9716661c9e18152aefe62e3fada497c10c9b3ef3095359c31b4df4f866a", "arm-unknown-linux-musleabihf-0.14.2": "2b3ccfd36718b29e0f5d1dcc10540b61205c72ee1c6a43331e6a97f2a17f12d0", "armv7-unknown-linux-gnueabihf-0.14.2": "5539a66c2723670dbf54eadf615e106aa038decbc701b9d47f7ed535ac677e1d", "armv7-unknown-linux-musleabihf-0.14.2": "c59be0daa3144ba317c88dd6cb3af68cff0f8dfbf2f495bebfb5b630d6f4c7cd", "i686-pc-windows-msvc-0.14.2": "125e2010b28ccb01ed2a4596e3db8d8dc0a46ccba2ee08e6038cc56ebbfbcb96", "i686-unknown-linux-gnu-0.14.2": "e2accde14cb371ca1b60935028c72138390f552cd77fc8c52a75f28c68eaa963", "i686-unknown-linux-musl-0.14.2": "d11f67f949e909412c523edcc1944c16dfecde49ed3709bca40631e371300da1", "powerpc64-unknown-linux-gnu-0.14.2": "99cc0f2cf83a7f82bb4e0db9ff1de8bcc5bf966054c0c82d25e189ee4565b0d5", "powerpc64le-unknown-linux-gnu-0.14.2": "81ac087a458bcaac7905c9afe84ef58061394a71264e8dd115889be0bc96fc6e", "riscv64gc-unknown-linux-gnu-0.14.2": "7917eb80fbae72040ad199f634361ce6001bc6225c165caa09c6d983c90692b0", "s390x-unknown-linux-gnu-0.14.2": "e24bfabe70535ffeedbba74ff6ecdf6c6bb09c5d9bf2c6c902e5540b569d6236", "x86_64-apple-darwin-0.14.2": "f119057618599e8983bdeed64e949af54f67d7a62464d11de0ba1237619a9990", "x86_64-pc-windows-msvc-0.14.2": "0a1160f45263cc847acd4b42392bf0484c9420806eeb7f776e1384fb557aeade", "x86_64-unknown-linux-gnu-0.14.2": "b4457ef6c130165655e0fb91081dbef09011ec41955115aaa22c94f7655c97c2", "x86_64-unknown-linux-musl-0.14.2": "e5e177a829b370376abb6a1dc9edc8c59ac519ebe64b1366b65e2952fa524a8d", "aarch64-apple-darwin-0.14.1": "ee12f441b4c14eff354784a52f8a16767573bd6285627cad2ade04551e8a678b", "aarch64-pc-windows-msvc-0.14.1": "3bd0b34cc645faaf88b4010a639d9b0ec6c313359774ad7e48daaef4ddb3c4f7", "aarch64-unknown-linux-gnu-0.14.1": "8203922d5f55a04089005184942f2f449f9736a06e96854230ba5991bb91ee9a", "aarch64-unknown-linux-musl-0.14.1": "ddfc9df5c879a1984fef4e29838e46fa8e979adc3fdab5967f096363427e8790", "arm-unknown-linux-musleabihf-0.14.1": "a29be1acc5f29ee8cb5a5add223a7ed07e8ffd0f9a78219e115e57041c63b416", "armv7-unknown-linux-gnueabihf-0.14.1": "dd8ead33fc3158618a29f02d76fd7ff4f6914272b5d94a65e348b8b8c0753d78", "armv7-unknown-linux-musleabihf-0.14.1": "16d79262e9fc98ceef167577a391d54d9c8a2d8fe90de22266f456bf4644f7e5", "i686-pc-windows-msvc-0.14.1": "ffe525c5e641f3bef31d9bc6e1e3585f9f796dda1254c15e5a18ef51a91917c3", "i686-unknown-linux-gnu-0.14.1": "37f10652706cdf1f107c620970bf37591b0be44111614101509f56e596f866b3", "i686-unknown-linux-musl-0.14.1": "e39c79642ec4e3d95d31a0ae77fb648946f2a639cb3cbf876c0f5e1e2571e94e", "powerpc64-unknown-linux-gnu-0.14.1": "1ec026aef1c670715d5c197bbf18b4edd81e140fbecee51ed169e05b042c6045", "powerpc64le-unknown-linux-gnu-0.14.1": "193d66f5ed6e21a46b244118c983ab91628ed65ae542f7345f8e37a8c555bff0", "riscv64gc-unknown-linux-gnu-0.14.1": "4cbea006f37927abac8c32575212f982b86aaa4f73a32983e4a8934320ef7e9c", "s390x-unknown-linux-gnu-0.14.1": "5cd7f6e6e2de3b03ada4821de444e92bb87ce5c57981c1d8ba8128dc62f02668", "x86_64-apple-darwin-0.14.1": "7fda94bd7fc6114eecb67b858a8c93f1b4aa658aa1f5e887b37a2b95bf6f26a7", "x86_64-pc-windows-msvc-0.14.1": "ab0bc1876a16e1afa4177fe9f58d568fbe85921efb253395bd03d01e1e2c467d", "x86_64-unknown-linux-gnu-0.14.1": "8798f5892db7dc70a3250f89d3ef613f87f1fa5fdb4242921ee31427daf78e87", "x86_64-unknown-linux-musl-0.14.1": "ec5b8eb318ff9e2412988420eb78f965aca02e9f67df34eeea7609e0c5a0fb7f", "aarch64-apple-darwin-0.14.0": "0b7c193d5c45eda02226720eb75239fabeca995d5a0eb3830fd2973caa3030ec", "aarch64-pc-windows-msvc-0.14.0": "a882d2ec2235c13f63453fde682775d2e1f8a44ccfd1af9e031255b051e30e70", "aarch64-unknown-linux-gnu-0.14.0": "60fc3b464a723456ba1bc8cd91d29806753c885f72e26ac67b718cee6b35aaca", "aarch64-unknown-linux-musl-0.14.0": "34a25398f03e7d32a4ec406c5c841c6e183fa0a96fbdd40b7e7eec1f177b360e", "arm-unknown-linux-musleabihf-0.14.0": "7fd422231c9f34ccf8afed3e11db7add9aaedb25e8f5086e856e1f405f8b6625", "armv7-unknown-linux-gnueabihf-0.14.0": "994f029a927373d9039319775971ae04aaf07cfe2b2d0eed2e1f4817437441dc", "armv7-unknown-linux-musleabihf-0.14.0": "dad98aa125f6c164e1dec2401dc67661128725f17d7a2d17021254ad47f29a69", "i686-pc-windows-msvc-0.14.0": "75326418f1728e83ff615143beb32d203c73272621c4fec402dfd9c4ca0a403d", "i686-unknown-linux-gnu-0.14.0": "5005907c511b455ff6f617805ddd6363e648240fe639134f93190e8c20496c75", "i686-unknown-linux-musl-0.14.0": "58831bbc23d69541643796922197e3f145f556283409683f8a19624e89f13956", "powerpc64-unknown-linux-gnu-0.14.0": "7c892d6dd348b8a01ba07c6a819f3f68996b5e73a1dc9b8f0858f4f3788d89b1", "powerpc64le-unknown-linux-gnu-0.14.0": "b66f376d7a19808ab5760f98c1cdf577e7dab666340437fb665a863baf701c02", "riscv64gc-unknown-linux-gnu-0.14.0": "7126a36d39b58d2bb45a241e490c5b6f9e6f9f32880a0c50f65f6545b73b570c", "s390x-unknown-linux-gnu-0.14.0": "d6160cda15380eed80c4512b4c577e105e3f00a5a6d6e5c5f6dcc1199a91396a", "x86_64-apple-darwin-0.14.0": "880ae046b435eb306cd557a7481eed6da463b85f283ba1f2c1e2ad7c139ed6c5", "x86_64-pc-windows-msvc-0.14.0": "f81f957c862f310ac0be70ae7cef2e99afb4cc09648e40c039432e11465c2c1c", "x86_64-unknown-linux-gnu-0.14.0": "28fe06f700caf99eee235f90e6e349f48b7f9a4b0d42e3ee5b3686f9259649a3", "x86_64-unknown-linux-musl-0.14.0": "ed6d1b8407a1d228dc332fb19057e86e04a6cd3c2beacdb324ad6ff2a3f9071b", "aarch64-apple-darwin-0.13.3": "a170ead9a9f03527dba3d2fb3e9e445f73d9efe3584c3307f3d30c6d5f31c487", "aarch64-pc-windows-msvc-0.13.3": "382c0c3948330f8abe0b5349c41aa80a01a6c54201f2312ef41152a057008bce", "aarch64-unknown-linux-gnu-0.13.3": "bbc9e73e8e302ec2f6175165374aadfb15f5210ec12660aa444c1cc1e3058cfc", "aarch64-unknown-linux-musl-0.13.3": "4301d51fd2fbce6d4cc55613e5f8f96ee4fcb8dcaec8419023fe555575cf78f6", "arm-unknown-linux-musleabihf-0.13.3": "377dc72597e3760b25c3b18616bf69966aed963e68b51f94a12c63207da286ba", "armv7-unknown-linux-gnueabihf-0.13.3": "86c4411773e21fa4bc1969da3a62d9f795205d83908d94a0bf3d91b577a6edaf", "armv7-unknown-linux-musleabihf-0.13.3": "8c981482f90a9bc4bed9c8f5b51ea272fb70baf239998a8ae13d7a57c8eeeb09", "i686-pc-windows-msvc-0.13.3": "f8800f124929cac319ec13be1d5a3941a0ba986e3c2e8bb31eee962098eb5e0c", "i686-unknown-linux-gnu-0.13.3": "77502c38f90e583bcc8e713007fcb5ec669c872252850028e01e98893e8bd6be", "i686-unknown-linux-musl-0.13.3": "e6f740d1b8eb8c14adab59abfe1fcf0ba97ebd34c92c65611de001e28edb697d", "powerpc64-unknown-linux-gnu-0.13.3": "f402e5e49bcfc3b4bcc54a093c908a5798fb61890a96a9aa034ecb79bebcf398", "powerpc64le-unknown-linux-gnu-0.13.3": "eb22f5bcf2f7e4cbec894423c00b31169ac6df0898fccfb465f0e29d1370f9bc", "riscv64gc-unknown-linux-gnu-0.13.3": "83c62e1b880ffd36020b50fd9d2c5169ed3eba984b59f5347ea3301636f747da", "s390x-unknown-linux-gnu-0.13.3": "2e8cbf501f913fe809e9fc382229d214ed7ba0ddaa556d9cb3ca4b254865d1ac", "x86_64-apple-darwin-0.13.3": "1c3a291a595ddd08398eb1e06fba883b7d8d715bd4255af5972f858fec8b4e57", "x86_64-pc-windows-msvc-0.13.3": "01e7ce81e052ad8788d6a9bffbce74524d80fbf0659e6194165d1e1d3ded9f39", "x86_64-unknown-linux-gnu-0.13.3": "65667601e41bc669b5b52e0e52cb778d4a982381c9b92423279e8ca43f11268a", "x86_64-unknown-linux-musl-0.13.3": "8d24d74171772c67366d3187b990a3dc706022aa3a631b2a612d12e362f226c7", "aarch64-apple-darwin-0.13.2": "96738ad0b9decb981f53790949487650255a9da0375524b02dcdd862de9f2efa", "aarch64-pc-windows-msvc-0.13.2": "58b946ceaa220052bcb919d1a64ce3fd216ab24ae121fd0484513dd518ff5a40", "aarch64-unknown-linux-gnu-0.13.2": "6aabf5f6d12d981d5b6d0759b118bd52ad4de77695f573c96d74de78fb2b1820", "aarch64-unknown-linux-musl-0.13.2": "a225f352214340d50882ede447fb8eea6a0a5a77233a2e03cda194aa19e5e514", "arm-unknown-linux-musleabihf-0.13.2": "5dc57704c05c4e583b1b98aacc70ca900f9bb15abb3def1ae9d178905f2fa0f3", "armv7-unknown-linux-gnueabihf-0.13.2": "5b16463eb53cc2189c46c9b40c1596fa28d0a657681594ca42afc5606fac732e", "armv7-unknown-linux-musleabihf-0.13.2": "4c852003d3b9841fb61910bfb0dd2588bff51db647f759b23fcfd637811d379e", "i686-pc-windows-msvc-0.13.2": "cc498f637cca87e1a87ba35f66e020797e514959bf74932d87d9b8c8a5d733b1", "i686-unknown-linux-gnu-0.13.2": "a951df6892005b6f5c8264b531f2ddf253dec9097dbcee9594295227eb93455d", "i686-unknown-linux-musl-0.13.2": "ad6b9933e4b43d509aa686b4e915aa132a8537ee2fe86753ca29d1efac8270c9", "powerpc64-unknown-linux-gnu-0.13.2": "3f656a654fc7f19a9dd9b6f4e17f8b181fca2d8eb36036d4c44a7d747ca4f834", "powerpc64le-unknown-linux-gnu-0.13.2": "cb6aab61485a32c24e334c005106775c94dad10a687dd31a3e2e9ddc65682776", "riscv64gc-unknown-linux-gnu-0.13.2": "a1ea659d0aab60dc3aa308d1ebf27abb3e95b4bbd89b836d9e8fb91dcc9b1b45", "s390x-unknown-linux-gnu-0.13.2": "8ba0c6d8ad5e102d9d4e6d3fbdabdf4cd1a894add52bc8b238bd675a03abc9b7", "x86_64-apple-darwin-0.13.2": "ed848ebd0a8d7d96a88686c5fc86e8bb6a4c1b831ace2dfa252777f9c69460c6", "x86_64-pc-windows-msvc-0.13.2": "dea59c3440e59e4dbfa17ec8e51c10fb6f7586650cf30aad8dd8674ee4cb3f3c", "x86_64-unknown-linux-gnu-0.13.2": "882a9b37e9fde0835ea67f98ad240c16abee6a2d374bc2429fee45a25b4a0738", "x86_64-unknown-linux-musl-0.13.2": "60755c060181b8d3649d5b568ebc80f76df49dd03249445627f2ceae552c21b6", "aarch64-apple-darwin-0.13.1": "1cfb3a7455a83602d474044243b618989edf58c2edda45eb4d3331ab550d52c1", "aarch64-pc-windows-msvc-0.13.1": "17c8ec337b61c014c0d1d090e379f28181d34c3d29edf528de3cf006f944bb18", "aarch64-unknown-linux-gnu-0.13.1": "a2c2063a82428abe654cc8cdd7427db0b5790ccdd6b8ab505af17e328b0e7d32", "aarch64-unknown-linux-musl-0.13.1": "3ad26d4a7a736e00373e635f03d7427e20183b0fe99b003a494bd5cdbc3c9c12", "arm-unknown-linux-musleabihf-0.13.1": "810e2f052b66c86836c6fcb88b888f6731047537d38e97afc4d43787363bddfe", "armv7-unknown-linux-gnueabihf-0.13.1": "c603565c9e1b13acadf54c02ff7a42b32787c6b60f45971e2519547d77535df4", "armv7-unknown-linux-musleabihf-0.13.1": "1d120eef7b14b5d141e77ffb3e3eaf161e597e7b55cc7d45977f1960b5be2d08", "i686-pc-windows-msvc-0.13.1": "f95615a35a87d7f8f6fb501feb01bc419e6d268ecd4af4f18777efac603a7d2a", "i686-unknown-linux-gnu-0.13.1": "2d332ec4da0b211a34a65c9f89dfd482907b35dfa82b95964fba82acb9db7948", "i686-unknown-linux-musl-0.13.1": "8e0f53b0ef11ef1a328a9c33dd565d16149397c33ac5bf9b1218373dad896e0f", "powerpc64-unknown-linux-gnu-0.13.1": "5f122167cb3719ae116421a6d2ff30a6dbf7f06649a998b7ea25a0450e3a4285", "powerpc64le-unknown-linux-gnu-0.13.1": "b2af20eb2a3a976c6bb5573a98e577334a366bc6a15a06dee165ae85ad7efe5d", "riscv64gc-unknown-linux-gnu-0.13.1": "48af0ab64584ee9b3c2b44e3c311e5c9ccce56af16234b7c916cc22068b1494e", "s390x-unknown-linux-gnu-0.13.1": "08cd47492750a58546d799b4774fcf21e62b8d9a5015d3bf1751d69a19659eea", "x86_64-apple-darwin-0.13.1": "9c4d53f20f5bae4d4e664cc91c26d57c1d0a67fb5fd16af6cffdac0db88474c2", "x86_64-pc-windows-msvc-0.13.1": "d9a89413459698f4b1a3803fe76ce1f5976c7d058ed33a081dcc570aca20ced7", "x86_64-unknown-linux-gnu-0.13.1": "ed653acecf38654fb2e0e45c760a2a12fabf84b390230efa0529896576fcb84a", "x86_64-unknown-linux-musl-0.13.1": "917c300e001a86d9a5d9aaa275dc49b20a7438e3f298e071b7b695a4092f1898", "aarch64-apple-darwin-0.13.0": "0d706798534537b6655b79fd95c2955c0a0013d4c54d36679d3306825a6bd6aa", "aarch64-pc-windows-msvc-0.13.0": "7131186a9e946ed5ef6bc90724b549b05317bbb7919b19927bfdf23df4434249", "aarch64-unknown-linux-gnu-0.13.0": "7aae1ff1a049bca087aabacf05dc7a13fcca4616efe1b7f031c3397d52f25e82", "aarch64-unknown-linux-musl-0.13.0": "bdee6f1376470b74b1dc5ed48eca52ec9c3e4512bd7f3204e0df100f0bed4741", "arm-unknown-linux-musleabihf-0.13.0": "9d118582cb4b2bb803be19b24b12ce74c78d450fbd9b6b3ca0bb1a8d626add89", "armv7-unknown-linux-gnueabihf-0.13.0": "eddb2dc55df67cca755b6e9006a28d709f6d565c8925dbe73569be195fe2ed35", "armv7-unknown-linux-musleabihf-0.13.0": "9b9f0e9926966b6f7227ff5eb115f0ce9fa00e70173a5ba52a4498cce9ccda49", "i686-pc-windows-msvc-0.13.0": "2cfb5ee1214ce8e5d8bbeefd7f48571b98f03dfb4f226fdebf879af82f912d7c", "i686-unknown-linux-gnu-0.13.0": "ec837f0fd6c2bdae082ac6af0417b235fdc500de56cecad9b1969c683a3c1126", "i686-unknown-linux-musl-0.13.0": "f1a4fd05eceee516eea520ae13fa9b496fa34563cadcc6b77f3f1bdd39b22dd6", "powerpc64-unknown-linux-gnu-0.13.0": "da2b5c82d2f68a5c52997d4557c7d399af8fa541e7691ccc5b4f44156c4389e2", "powerpc64le-unknown-linux-gnu-0.13.0": "55754ba31237cc0b4ce8156cfd76498a4478784568b200cd6a910de5931b84cf", "riscv64gc-unknown-linux-gnu-0.13.0": "41efed62a6c46f3e267763d481c223db96179a2eea203ad429f7af9986af1994", "s390x-unknown-linux-gnu-0.13.0": "a425d93ed5f3fd3d0e842c34fc26caf0226380c5c1feb953dc5143d32270833b", "x86_64-apple-darwin-0.13.0": "ac47ad1ac90f3070c064d2f5fceef4fe609fec7c073fd29d0814ed126c492e6d", "x86_64-pc-windows-msvc-0.13.0": "3a8d8cb96333671f78a5d209ddb4f830287e3eb2796fe01dd043b02ec1c1c7f1", "x86_64-unknown-linux-gnu-0.13.0": "19152c46d147cf0d3bf8486628fa1de4a8a33cdc5a1b263c4ed31c949de992d7", "x86_64-unknown-linux-musl-0.13.0": "b56ac90cc6987401bafdcf1b931ef044074c5b9451286afa4606a983f64f4fdd", "aarch64-apple-darwin-0.12.12": "fcf7bf04fcd4de79c5a4046ac4dd5eef6ad82f584f8656c2ab1da218639d386d", "aarch64-pc-windows-msvc-0.12.12": "b55d13ad63c8f48c623adb0290b5e02fa5cb65dc76b4bbcff649d7f1d4273af8", "aarch64-unknown-linux-gnu-0.12.12": "e8e508419940fd33c657b8abd3c0ede7ec04006619476e22f02d78ccd9476b44", "aarch64-unknown-linux-musl-0.12.12": "1fe423a0dba3d441bbd5e5cb46a635a8fcbe9812488524235e4f1bb725754f01", "arm-unknown-linux-musleabihf-0.12.12": "60d90844366feb2a3014f05440c229b8e916f4d197e38cb5e4f8149a39aebc92", "armv7-unknown-linux-gnueabihf-0.12.12": "273e73c140816c188399f4364b698998d1aba1e4b682696729c4e54de3670772", "armv7-unknown-linux-musleabihf-0.12.12": "3fabdcdde82870e53623f634a43d5bb543e7cfa8bc3b6e24149cbf19ab6436a2", "i686-pc-windows-msvc-0.12.12": "6121d1e2b0a5a37821aaa2c2d21e81da80e94c942fa12b6f752531b882cd0c51", "i686-unknown-linux-gnu-0.12.12": "7420224b8a5f7283147f72284de649a297a762bb8984ddc1ffda56f623748938", "i686-unknown-linux-musl-0.12.12": "75ed6520296f67e9b0cd82e26d3897896a24747e41dfa33786458208a7a491fd", "powerpc64-unknown-linux-gnu-0.12.12": "3308e5a680189793bfd408e52c724124c9cf01787f13da31c4d8e5d5bb02c620", "powerpc64le-unknown-linux-gnu-0.12.12": "3cb063448a9acf92d5e234b4af2cc8800808e0c9d09078dc66f2ca64dffa9a0e", "riscv64gc-unknown-linux-gnu-0.12.12": "140ba0ebddd736b793c80ec36dc870fa11974cf194921fefb6aab303afe1a696", "s390x-unknown-linux-gnu-0.12.12": "13777acab7da68b180912e3933249ee069378b8f768e95ff0d2359d43f9e549a", "x86_64-apple-darwin-0.12.12": "92231ffd1448909f09ce2675ea674e5c51e1984cb64b99919fff60b861b4f5d9", "x86_64-pc-windows-msvc-0.12.12": "bd10f42b2d580e2fd4af2757d68df34e6483dbee5d57263b33b2198cc11058a8", "x86_64-unknown-linux-gnu-0.12.12": "1baad5d4282fcad356925d45b84b5c0a9c8a814c1b7919027651b8f83bd78828", "x86_64-unknown-linux-musl-0.12.12": "dd4840045c585ebc982530b9a8b687787dd6f3c099da93a6c1ff495471ab937b", "aarch64-apple-darwin-0.12.11": "09690b35cac07d5bb096b291b88b8adcbf7750163c20ada2dfd33aa02acd3d88", "aarch64-pc-windows-msvc-0.12.11": "758d7da795fca758ca82b3b657f71dda92ef090bbb581bce189dde5412eafcc6", "aarch64-unknown-linux-gnu-0.12.11": "4664bec73806c4b9a30a56510281004dcccfac4f1877a60fcd87e07b01ab7463", "aarch64-unknown-linux-musl-0.12.11": "9848a6f91b0aa292063c04a74f5a8984a83bb1f4c9c21518e6f9eda4ec810d44", "arm-unknown-linux-musleabihf-0.12.11": "f82835161ff591489ed270781154ea78b0e4b55f98229892f7efa200be3cff74", "armv7-unknown-linux-gnueabihf-0.12.11": "e231c22937bf53d399a0f10e6b7e418c7e69462c0ce2b6a51a49e51a8a3e060d", "armv7-unknown-linux-musleabihf-0.12.11": "7d94766a23e40a6c351aa803cf868247a006bbe5ee08385edf8d02889ba1ddaa", "i686-pc-windows-msvc-0.12.11": "5f44870463efc6c8b16eb07f2b6fc8209c75f5c1050ef83b2c66305a6dd0839c", "i686-unknown-linux-gnu-0.12.11": "e2b7c746c40aaacb0f8eeef4bf04c520479ecf3b162edb7c836e8873c68b099c", "i686-unknown-linux-musl-0.12.11": "a644834a42e13b3768c151152f154e3ab12154e5566dfb46edea0bf3862d6e43", "powerpc64-unknown-linux-gnu-0.12.11": "99736afef3ea165aae8800411a1c058a0037f774691400c1679bd609a5bc0419", "powerpc64le-unknown-linux-gnu-0.12.11": "c01aef8b1f20878952399a1a71011be2ab14471c44d94b652be1e41ee3e07315", "riscv64gc-unknown-linux-gnu-0.12.11": "88d0604b40b523b208e68669512bc8a6d2ea7043d745976ff6530de79bce9385", "s390x-unknown-linux-gnu-0.12.11": "cc16d30ba5a4544c75d608ac78cf59ebb27f657c7e92ea853398ed63794a7319", "x86_64-apple-darwin-0.12.11": "b6627363e52f6b49466f032894c3c395c4bbc645f6c520069050debbbaf8204f", "x86_64-pc-windows-msvc-0.12.11": "a9246d32c62999747cd0671e7d11ad4ebfb36a5f658fe63de583c7a5e9e2f306", "x86_64-unknown-linux-gnu-0.12.11": "c127b7ccc292ad4489440e90e3ef314113cda79f3add3acd687a0db235f1692c", "x86_64-unknown-linux-musl-0.12.11": "8e1631dc9b662759d08ab7bc0e4643636e36c450479006711bfe0d83b659686f", "aarch64-apple-darwin-0.12.10": "72c6abf39f5e87c57faa2d191baf2582e437ff72cdc0f52b7c7e50f26d41b807", "aarch64-pc-windows-msvc-0.12.10": "b157b393f368f9f1f646f573066e0cbf81fa852be3ba15fdd3a76c75a0b45c6e", "aarch64-unknown-linux-gnu-0.12.10": "f58ea47d6d482712a8338056541fb604956d8c81f37323d29c7920a88179e542", "aarch64-unknown-linux-musl-0.12.10": "10b43a88fb948aaae538ec9f35e93b4433f144d0379fb3a67d88282595b969f7", "arm-unknown-linux-musleabihf-0.12.10": "a6d94f838d4a2720199ea530172b63280860f9f92cae1eaaa3041899e62664e2", "armv7-unknown-linux-gnueabihf-0.12.10": "4e1a7330cebebd3f4e4e0dc1f5b8d4f768f0dc1cff0e199e8425eb8ebe8bf799", "armv7-unknown-linux-musleabihf-0.12.10": "4f0b1cd3ea250c87abc766c341225e12c465fc4622272e621e9fb64b4b00ac19", "i686-pc-windows-msvc-0.12.10": "b5d58c3b59aebe46626116721498bb7f88605f0085ebc23d3a75b78724ecc687", "i686-unknown-linux-gnu-0.12.10": "759096182f5e767efc6b7f3ac2a3df2dceb26c5091604b03a305f3882fb80ae4", "i686-unknown-linux-musl-0.12.10": "c7b6d22586642a3f2f6ce051a75783874cb7f3f3626e28b92fbf22fbbfd2329d", "powerpc64-unknown-linux-gnu-0.12.10": "49e52b6ee3edef681e1d28127ef990b504996b97d8e1ee30a000a72c9486c31e", "powerpc64le-unknown-linux-gnu-0.12.10": "0c562f790640b6d128867af254a646b86d1975a7ae426b3a61e332c08ad9db6c", "riscv64gc-unknown-linux-gnu-0.12.10": "9ca0ecf7a7b93a7d3348cbc10989a4779a9a79bc47b5ab47f510fde74abe88d5", "s390x-unknown-linux-gnu-0.12.10": "a71fe85458fb0e1df2e73abb03a945a90eda722162fe13e1b326bd6807b83192", "x86_64-apple-darwin-0.12.10": "8619f277921b3e2e56d850c3e203fd4ef10b457bc50f93ab6fe85743eb324de6", "x86_64-pc-windows-msvc-0.12.10": "a639e4dee10cb2900bffa7165457766671c59c744ce6b61cc658c35ab33a91fd", "x86_64-unknown-linux-gnu-0.12.10": "a3e1757c16f3feffab6faf22140d57e5528c91c7b338d4fa542dc50f95b857fb", "x86_64-unknown-linux-musl-0.12.10": "dd4e5b8f81547a48975489913a80e0dce6be7f1c455912fe3a5bd5a1f5f1a35d", "aarch64-apple-darwin-0.12.9": "68cb47f9a98e17c59e861c3b635b32c5212defd21a4ec0b5c1d56950d06076e5", "aarch64-pc-windows-msvc-0.12.9": "c747d2ca1bd3bb6df0a2af31f39a53180f2bf556242e5380c495cbd7056c10be", "aarch64-unknown-linux-gnu-0.12.9": "302dcca660fb843f4cebff7ae57e1f4177c5cbc3d760aea419cead8a741a77b7", "aarch64-unknown-linux-musl-0.12.9": "dca567860383bb6a7b021dab76c616b02ed9a268516a0a1a1dce56ee482740d7", "arm-unknown-linux-musleabihf-0.12.9": "d58c9b2a5f92494a5765a22feaf4704eede88a97105d60a0436d3af9b88db335", "armv7-unknown-linux-gnueabihf-0.12.9": "062242367b6a3e72f436e6f913b1c1afa2cc161dc270128366b3f0e27e14f2f6", "armv7-unknown-linux-musleabihf-0.12.9": "aee8c90b621d339bb10fa53a88e3f3d33881ddaa7a5d04a398b3c2eb42769f3c", "i686-pc-windows-msvc-0.12.9": "3a043c3f3b5dfd2bd074a6bc86ee83f218dad59dc47b2dcea23ef27ac9b973eb", "i686-unknown-linux-gnu-0.12.9": "5f5a3ae7b21e09b2fca7a950e466f56769845b93a851bc354f2811c6483041dd", "i686-unknown-linux-musl-0.12.9": "66e5db26cc7bf20edc8be2e89dfceb25bd5828ea7405009ad0c5edaa7019e47f", "powerpc64-unknown-linux-gnu-0.12.9": "0a520d5bc483ef02c4d37d716d8ed276e08d5df8e85b5cce8cdb5a2cefe31777", "powerpc64le-unknown-linux-gnu-0.12.9": "ac9c786cc9bb6c84aa3a5ea5f5a2135349f3e3a28068f307863d8d72c83b11e3", "riscv64gc-unknown-linux-gnu-0.12.9": "cf7bf473d85ceb289b0e51619cf07d3b854976dc6f99213c869c1e4710264bc7", "s390x-unknown-linux-gnu-0.12.9": "2d67952a2f5b4fff530e89f969cd4075b7086032135829ae82221b2d2bd2bab0", "x86_64-apple-darwin-0.12.9": "cc8195f89146268086e99225316b4214100eb78010aa84b9e650f8322d5790f0", "x86_64-pc-windows-msvc-0.12.9": "9d360dfd4ca5f688aabf542c570644fab8b02a3c0e71460cf51fc4869df03ba6", "x86_64-unknown-linux-gnu-0.12.9": "db126272c8473979d744c9be0fd9410ca431dc0cc9daa67286f4f206dd715957", "x86_64-unknown-linux-musl-0.12.9": "c177d59d4c6347abbf08c8943eff919432d5c70229a0dd6390e5697d393a9c05", "aarch64-apple-darwin-0.12.8": "d7ddfc029858b97452e728c229b0378e3dde5300b23df5cc5c77296025971379", "aarch64-pc-windows-msvc-0.12.8": "99cedac1f9b7a321a0e2b81ded68bbaf5dbff6aedac528766eda50d3871ccce9", "aarch64-unknown-linux-gnu-0.12.8": "fc4a79cfe90c8e4f7bfdad2198e939b70416916a7e90f687f30490b25e2171d6", "aarch64-unknown-linux-musl-0.12.8": "6840915d3f11a32ac00368206d7a4c957d2d499bc324ab39a3a0a851fda07dc2", "arm-unknown-linux-musleabihf-0.12.8": "cf549a91db1de22bde9562725d748625a23d41050f2e3ef9a6dca0b6abaa3ca3", "armv7-unknown-linux-gnueabihf-0.12.8": "b69472a32bc355f7cbc61d939d3ea1cbf1ab42f1bddd56f4ad53af1a372dab55", "armv7-unknown-linux-musleabihf-0.12.8": "0de514e00cfccff21fd52315f439e52ac95f02539487a78ea864df5d8627e77e", "i686-pc-windows-msvc-0.12.8": "50bd0eea8f4dc8a94a96cc64f3f61163421f02230672e12b5a91068c7585f7e1", "i686-unknown-linux-gnu-0.12.8": "3363c9c7b41fec9ad680f9bb32b65fffb30bd582e0fc2ae5d3ee8c51e3fc8347", "i686-unknown-linux-musl-0.12.8": "73dbe5b0718322479e7e78abf598c626d7ffc8cf10a2ebc54524fb0e0118fa37", "powerpc64-unknown-linux-gnu-0.12.8": "570dda0a1f5683eb2124491356694fcd2d5b13efc43f2b2f7315fe187fc2add5", "powerpc64le-unknown-linux-gnu-0.12.8": "73bab12d97b6ecd54d8e338f57ab90b3c06e6bdb965bd9ea1613a2c11eb24256", "s390x-unknown-linux-gnu-0.12.8": "001f98c87871a617fda8addc74954b79b8c10875feade4a187de79daf8613fcc", "x86_64-apple-darwin-0.12.8": "5c795cae1956a1d1c84e1d93c952b627da1541311fdbb09885bf9d80b0e2cc42", "x86_64-pc-windows-msvc-0.12.8": "223d7691fc68bfcfb0bbefa35e5d63998721367404573d883e97583fe73a7682", "x86_64-unknown-linux-gnu-0.12.8": "ac0edfd0935dfedc884f2ddeab6705b4875e7e84aa9f1c7af78233492ebecdb0", "x86_64-unknown-linux-musl-0.12.8": "0062142b6277177f196a9dd7cf1bcf10f536f8a33c458d258525504f94760227", "aarch64-apple-darwin-0.12.7": "86b39b4002bb12588af972ad56cfddc1eaa0879c4badb07f0021fae77b5cd958", "aarch64-pc-windows-msvc-0.12.7": "35b51d47463eebfc2d39863222a19540e73ddda5b1662b88e774580a7ac526a4", "aarch64-unknown-linux-gnu-0.12.7": "0d4bb492a02cf191a2e1e058cf819c2ed86c05ea444de5e3895ba75c890a9804", "aarch64-unknown-linux-musl-0.12.7": "5f97261a334af4f4ba41baa5cea0f0dfd8d732d9ab22beb5bf0639804389bfa3", "arm-unknown-linux-musleabihf-0.12.7": "ec0d3cf0c6721b1c4c7480995d8a538b217c9dcf37f64389f05a0bea7ff308b9", "armv7-unknown-linux-gnueabihf-0.12.7": "59f8f6d19faa61f3ca6e7127a3e34470028bed90e40bebacf7c8be48d3080140", "armv7-unknown-linux-musleabihf-0.12.7": "6ce861317f812b69c68a92c6f6afbb68b99bab4525758b9bad659f94a6fd2429", "i686-pc-windows-msvc-0.12.7": "becca8cf66388f2532477ad28fae2bd3ccfda8635f4fd68d7139914020203ff6", "i686-unknown-linux-gnu-0.12.7": "65bbeba7444f62cc403591999d7bfbf3aec0e2ecae869c969c9faf096a737279", "i686-unknown-linux-musl-0.12.7": "0fd4cc8e5f2f02acd208482da316fdb4ecc2179d11bf0aa61d7622ba7100e889", "powerpc64-unknown-linux-gnu-0.12.7": "81efd82ed616aa951499cf4012420adfbc4cac0b39375623bbecbf79a4d08098", "powerpc64le-unknown-linux-gnu-0.12.7": "46360fc4d0b498a3ebfc9ee73ee6b2b59db3ace21dbf12ba41e5fb15dfb71364", "s390x-unknown-linux-gnu-0.12.7": "ef03f40de21e9eed3e66626d3af768b3f9a82cd2e8cd62bc887bcd206a2ccdce", "x86_64-apple-darwin-0.12.7": "f0179a587d5509f32ab16bd95cdf64ddcebc80d653e3674161d366312a4eaf7a", "x86_64-pc-windows-msvc-0.12.7": "12a239698d4f0926523cb51a9b00a560615d6237e9a748c563a74f4708f4abdf", "x86_64-unknown-linux-gnu-0.12.7": "65b1ec7ba8feda6cbe52aec168f32e5c276577065914fca922b9a8b3f42db433", "x86_64-unknown-linux-musl-0.12.7": "58aeb49137d0a9df810ba26c778d10d612f8c1439439527a6a95c90ea318c7c5", "aarch64-apple-darwin-0.12.5": "8819b61cff645c1d1671df331bb57c1ab230094b686942bccedde1f888feb522", "aarch64-pc-windows-msvc-0.12.5": "b5f06365b87c4d90de76dbd17379db937faa49cd37a931f1908e7c94a604dcd4", "aarch64-unknown-linux-gnu-0.12.5": "6d00576ccef50b5627ded90879430acd40d590bbc7b354af0549f41fe2f58fcf", "aarch64-unknown-linux-musl-0.12.5": "f147ccdbe26d35f2752c6d97d158bc8e3b4d1833d283748fc48f350c698a6f7b", "arm-unknown-linux-musleabihf-0.12.5": "c6aaa6d90cd2abad0650e968defa8e30dd065ea05ef6391716302cc8e6e34287", "armv7-unknown-linux-gnueabihf-0.12.5": "e479a5f64160f814b44415ccdc834b0f85b539bc286eb8c09199a7aeefa6bf06", "armv7-unknown-linux-musleabihf-0.12.5": "04b7b507752e6f62fffefa3d02d31e96a7e8fb31f699dbc83fb814d7c3c4bb15", "i686-pc-windows-msvc-0.12.5": "a0c5b5be39841055fa7b4255cbcc9e8761a1328f461d2335dd53cc195b7c51bb", "i686-unknown-linux-gnu-0.12.5": "0c95dc3c5711fccccf26a1aef9a620d6a1fd2faa8485e38ec91d836f7d2200e1", "i686-unknown-linux-musl-0.12.5": "d223f9db886191de0c80c5e2519f413dce0281080f6bc9eecbaff18e2c474d52", "powerpc64-unknown-linux-gnu-0.12.5": "c436a319fec80a7b23591fbd15b2c224a3b30a5c0dc257d150f684a8c45dc147", "powerpc64le-unknown-linux-gnu-0.12.5": "26ccf69bb0a6b98b8ad0d7e566acacbd86e2fbbd734ea98b854e40237905a9c9", "s390x-unknown-linux-gnu-0.12.5": "c8f8ef8f4ce2930085f7e3e17ee58936938b41c9753c2a9aeab0a6473138887a", "x86_64-apple-darwin-0.12.5": "5af0b2931581a5ed91743c9f669c23cb0db9bb1f0c49f8695ad1443dbc6a9e50", "x86_64-pc-windows-msvc-0.12.5": "91b88d365f60e3b641d5204a87d56275cd1b4a869f939b637b06e1d6e9fd38e1", "x86_64-unknown-linux-gnu-0.12.5": "1ef5e978c41c67feaa5447d97a4400f5f0136c92d6507a876d81f1a2fd64d154", "x86_64-unknown-linux-musl-0.12.5": "79beb4eac07beaea24774709eeb88a87115f1b53f857dcc1155431e642e01ade", "aarch64-apple-darwin-0.12.4": "be7dc64e69a31b1bb9e875274778c1b65c9470ff18214232aa35fc843e5a6826", "aarch64-pc-windows-msvc-0.12.4": "859739ae8f64f39512f637ecc56ca12adfdc0d45f79f2ce1ba53d5111d92e753", "aarch64-unknown-linux-gnu-0.12.4": "8ce8faaeeb277f7481eb6fb21d1073365f1e633513f67542d245fad2aeebabca", "aarch64-unknown-linux-musl-0.12.4": "adab1c084dbe508c134a354e277b6706da98e89c84aee619cbff37fff5f0b8fc", "arm-unknown-linux-musleabihf-0.12.4": "0357e038b60ef8c879d625474f0c93e31601a3e648836ccf4dfcf85ffa7897d3", "armv7-unknown-linux-gnueabihf-0.12.4": "dd6f50075a6b02878d35b21a192ba6ec1a7b43be21b882f6363cceac19e457f7", "armv7-unknown-linux-musleabihf-0.12.4": "1286d7520f616f797427a492e51f2f53248505661c86ed30d141379f595ad049", "i686-pc-windows-msvc-0.12.4": "5f6a09e123059e7b434edc68b5ed5e8d2af8156cf10506a3587c51ecc1ffcab1", "i686-unknown-linux-gnu-0.12.4": "a19cc2babc73065184e60ee41a1157e94f290261175cbc51b11038ebb0dde84a", "i686-unknown-linux-musl-0.12.4": "c230fe5125497ba667bbe554759bdbd43d7e45855762ce35afc7e1bccd4300ed", "powerpc64-unknown-linux-gnu-0.12.4": "d8f029b295985aeb0ec877e232d43f56e452792e8edabcc82b1094ac2d07c006", "powerpc64le-unknown-linux-gnu-0.12.4": "60ac64921ff538beb3cbe8d91b56bda14dffaa7f4c398ebbedb0ff358b1c71c8", "s390x-unknown-linux-gnu-0.12.4": "78319ca0b164c84cb8a0f8bbe13372c9dd4d26cbc286b78c34bb5e947695fe08", "x86_64-apple-darwin-0.12.4": "2c829e3128354900495ad91d0401e2284e70121bae67cfcb264eea3a639381a5", "x86_64-pc-windows-msvc-0.12.4": "0fcadba5764177cc79d3b1bdf56481e71977dd167efd1073f9db9b719e34ed38", "x86_64-unknown-linux-gnu-0.12.4": "bc783b6b4b4a253ec2d9baf5ce559aa3a41570a14ae865cac3cdd11ef28403a7", "x86_64-unknown-linux-musl-0.12.4": "41117fc1c67eb9572c50403297bd5fcb8cec99d8a1566badec7ff1a03f8a356d", "aarch64-apple-darwin-0.12.3": "5769e4841870d1f7c17f12a7d1437222e8035eded52f93c54c035c770dbffebb", "aarch64-pc-windows-msvc-0.12.3": "25056f8a5ca19f87e4d8e13b744077ad47e122dbef454a6ecf572d9d92d5dbf1", "aarch64-unknown-linux-gnu-0.12.3": "d63a773c9e2854d4d726bc8ac0d919736e8f8e683b5a54caea0ad470ce233f0c", "aarch64-unknown-linux-musl-0.12.3": "7890e49b12c1321688540324a7788457a22711657301598402cba1a9e9be6607", "arm-unknown-linux-musleabihf-0.12.3": "f9d90927ce787f2543c2bca779383fc849c13a6234604e538a77d8337a0a3462", "armv7-unknown-linux-gnueabihf-0.12.3": "822ce8b913a53957a7d6877ac905fe7787bdc790fbd9dba3aa962827fc4e5162", "armv7-unknown-linux-musleabihf-0.12.3": "d3061cd584c331ddf211a32cb99cb15e7cbf8e5d6d8d471b559d389186e378dd", "i686-pc-windows-msvc-0.12.3": "500aebc9beda7ca2f4a00de54f950ef0912a8635d1a0dbfe5df65346e421e4dc", "i686-unknown-linux-gnu-0.12.3": "d651632b053fa048c7f6d6429606b4e19f11e69111124c1a2bc0eee0fbf329ff", "i686-unknown-linux-musl-0.12.3": "43ef80b00ed8524684fa50876e95ff36d2f270c91891987400fa9610c9253d8f", "powerpc64-unknown-linux-gnu-0.12.3": "3a71736656982bdc9a6a857746fd153e076f2ddb3dccb7c3172847c7737ca448", "powerpc64le-unknown-linux-gnu-0.12.3": "6db433e006a43a4064a2371e1721764ed95753550ae0be82329cafddd6d3462b", "s390x-unknown-linux-gnu-0.12.3": "a88bf4039b788d830c8dc190dfdf28166e957fc1d093a8b2ae7247ad14ae1b96", "x86_64-apple-darwin-0.12.3": "472a4790db11a8bcd79cf7b731fb1c036c376f9cc4e6532099f8f39a6f86b9bb", "x86_64-pc-windows-msvc-0.12.3": "37dc6f2f5756421fc59fe5f841ecaa92beee38a39751dfe5a42bdc13992da3d5", "x86_64-unknown-linux-gnu-0.12.3": "9e3a139c5458d4b14d8e2130ec42121ad5801b528497b298e28b68972507383c", "x86_64-unknown-linux-musl-0.12.3": "6ee9216ba4f7fd761e68bd5c23958e662c67fcff8f49e511660d557431b4bd7c", "aarch64-apple-darwin-0.12.2": "633331c47d0775bbf4924be69896de6e6613c86685b0c58a0079adad2213288b", "aarch64-pc-windows-msvc-0.12.2": "36513f0a1ab3b88060e62857e3db0eb53422fbc824ebb0ba65938a292d01939f", "aarch64-unknown-linux-gnu-0.12.2": "734405a442ef5fd263275a76bb4fa7d669318861b26cf9885672ad21c82689c3", "aarch64-unknown-linux-musl-0.12.2": "077d87a300129246c7857cb2ef2e454064b41f1976173f37b379acf36391cbbb", "arm-unknown-linux-musleabihf-0.12.2": "d11b1371f659304fef8c03e28fcd79a2bd0fb31cb0a90e803030cf7982e8589a", "armv7-unknown-linux-gnueabihf-0.12.2": "b81a97799ecb045ded09c022a0b2a38834826d8623475fcfe35d8287b41f2b2f", "armv7-unknown-linux-musleabihf-0.12.2": "806218760b038bf059f5e84169cd44efc9998547b2d178643669a4411ee9ba46", "i686-pc-windows-msvc-0.12.2": "568195cffb23e9e650e55cf8bc7be4268cf5a6906cbd6343ea8def5c70fab8a2", "i686-unknown-linux-gnu-0.12.2": "ff1a1f3663cf9601a4c6ae1935435e682eb341e0d4c8a8511db00c7571a2bb62", "i686-unknown-linux-musl-0.12.2": "c5036034779969fa661103be20f886106f3eb44a8d1aa4d992b3612071456f99", "powerpc64-unknown-linux-gnu-0.12.2": "91178128af0e34a0530a5e17d1fe1a2824f7a9a2e4b1a8809b5be5aff11cd3a8", "powerpc64le-unknown-linux-gnu-0.12.2": "5ef9d77112aa5ce699a57be29ef0b7837740ac71d34f3c0d72f27478993a68da", "s390x-unknown-linux-gnu-0.12.2": "0adfef00e795810a3b5ecd55c80364b3c89e33dd3728b5689a4528eb62b40d22", "x86_64-apple-darwin-0.12.2": "8d4aa6c8e6d856c8f62e81386d5235803b985422e7a955dc43c287895276f63b", "x86_64-pc-windows-msvc-0.12.2": "7562b9383e9c195e17b6f524165dc6da6435a76bf549a5132977dbcf598c890d", "x86_64-unknown-linux-gnu-0.12.2": "eb37b0eb7f4742b0d3a6edab3a11846c5c07e641987a0c40a944ddb89239d977", "x86_64-unknown-linux-musl-0.12.2": "2ebc92ad3089245c46cfe793838a27be1c635c413db7dfc375c9ad7ee37b3e7f", "aarch64-apple-darwin-0.12.1": "f33ec69d83f713e0ff2cb720969325bb1553e43978e2f1c21498bd31e11fc643", "aarch64-pc-windows-msvc-0.12.1": "a63061136085e15915514205297e432bb178ca2f4ce5294b12f98be9c60470e9", "aarch64-unknown-linux-gnu-0.12.1": "2e42713b3b544c382e969029cf6019c99df09b4069f6a3a828a9be259f3237c0", "aarch64-unknown-linux-musl-0.12.1": "cade8ed7dde323d5592928c0ce75c78c34d514cc51e044cb0d0f7766d3c7a2b7", "arm-unknown-linux-musleabihf-0.12.1": "15be4817abc62c105f593314395fef3bacf1f37a375b2c1e5271c330b0953f8c", "armv7-unknown-linux-gnueabihf-0.12.1": "39297b08493b01f8e90146fae33aa5280fafe07045b381ecbb5ec77f3715d44a", "armv7-unknown-linux-musleabihf-0.12.1": "c7a084c3ca22d7d320f92109da5e05ebea6b9fe432a2ee3a16a9a86b6388a596", "i686-pc-windows-msvc-0.12.1": "6ce28e584a294f843dc278bcd7fc88db02c56068faebdafad0bd552f2e355af9", "i686-unknown-linux-gnu-0.12.1": "aae32a5582e6b93111ef56d98d6ac6bdbf0c9f4bb1ca32f7df0a7b957d403e81", "i686-unknown-linux-musl-0.12.1": "2deecc1daa1182898c43f80083911103494076e86ef64c33a73824ac05bb1266", "powerpc64-unknown-linux-gnu-0.12.1": "19d346f40b7efc4700c1b0b4e4b10c8f075d7e3dbb7ea13bc09868300a2eef36", "powerpc64le-unknown-linux-gnu-0.12.1": "70f25366b313ca2b1f6ea5233bc6f08e4ad4256994e7356f1cea1ae8b53bb5e3", "s390x-unknown-linux-gnu-0.12.1": "2bb70c4f029ebbe05ec0dd546dfe8bf52a918a4404c7b5dc85f2aef30beee20c", "x86_64-apple-darwin-0.12.1": "eb1728cfd8b969079e232047c70ece00dbb110248b61dd5f9b7e57191fd466c1", "x86_64-pc-windows-msvc-0.12.1": "ed16ae044866378c27855f44400c1eb0db8ecec26ef07582dae1d550b968d9fe", "x86_64-unknown-linux-gnu-0.12.1": "61357b8326d116113596a3d8e9f2398c33f0d21e0f99d50d9e03ac9578194d48", "x86_64-unknown-linux-musl-0.12.1": "490102d2426a2941dea07af49dc8befbe4f0d2c29dfeb4290adde824a10099ed", "aarch64-apple-darwin-0.12.0": "a72d648a24030d9b34c65043b348cc3ab40b157e7b78e65098fb88ea317774f1", "aarch64-pc-windows-msvc-0.12.0": "366ef0d9cc20c2d9f396f81ff3365d18a1ebdf1c7d2cbcbbb10c6fe82987f2b1", "aarch64-unknown-linux-gnu-0.12.0": "8e22a56ac726102512dcd5b1a503c37a5155bdd4430d97b89e994e5ff3614f39", "aarch64-unknown-linux-musl-0.12.0": "b58a162e297ba70e36c788d4c576025e939d29f11f46f22e448867571cad7d10", "arm-unknown-linux-musleabihf-0.12.0": "1297faed2157db79236618400231476d2f878107e09ae9c79f4ec01f357f3f91", "armv7-unknown-linux-gnueabihf-0.12.0": "6c7ed923f359794be34aa5113f12e923374b5e0d8a05f80d2a449f1a951aa1a7", "armv7-unknown-linux-musleabihf-0.12.0": "ca96fa7afe2c3ac53a3269664ba265c3f02c4aa95e0ddaf5aef5f09661cc7b38", "i686-pc-windows-msvc-0.12.0": "d371f72753b7a4a8ff1cb8596a65c794bb864be3a7654c399e8fb73826f5d8d2", "i686-unknown-linux-gnu-0.12.0": "65ef09a64601dcdc07cebb5041cccc9425da8e57fd788388c2a7f1ed45b473de", "i686-unknown-linux-musl-0.12.0": "bcf10ac6977c2fb0ba9c5ff8a02733f68c2b6affb706606c7c7571ef1d4c7358", "powerpc64-unknown-linux-gnu-0.12.0": "41f9f08aea909f579930e7cb22907ff42698af5cef19e6f2d2653787a051d647", "powerpc64le-unknown-linux-gnu-0.12.0": "d23cd9ee0b687b9080dca8c357eadcc3a3944fed01fecad4e00c3f0596fea9f8", "s390x-unknown-linux-gnu-0.12.0": "c033fba4227bf4b831e015ecbdf38ceacb6329dcc2d9e5c3f6c99ad3bbdc0780", "x86_64-apple-darwin-0.12.0": "df314c2c6623c0bba40c988842efcd249d7a9a2480d0de9570ca18f75a2e4b9a", "x86_64-pc-windows-msvc-0.12.0": "b2206e1da2f08cdb46e1e5cdafdb6b1d307bb568cc299111742173843d340db3", "x86_64-unknown-linux-gnu-0.12.0": "1a2194e90cc4836b0c56820eb282faf17180db2ee4572f91c91a2d6a432a2306", "x86_64-unknown-linux-musl-0.12.0": "03c554016d0638182694e69aa222341c4c762d9ea982b8dfe712d757c806c76a", "aarch64-apple-darwin-0.11.13": "7d5e8feea7ee5c3962807996cad557e8a0c4d676c1cba6223bfb0e8b2ca07723", "aarch64-pc-windows-msvc-0.11.13": "67c4e1196d798ab8e4c0fb3fc81e3799ec9fcab1d236f286d348dcd6dfe4cfc2", "aarch64-unknown-linux-gnu-0.11.13": "551af2ebc439d8268dcaf871ea60ad035f688728d30943dcbb2bf775e105213e", "aarch64-unknown-linux-musl-0.11.13": "1ff8292d610302bc20791f6ab264de499b6d2fbf89030fef915908c564a78e82", "arm-unknown-linux-musleabihf-0.11.13": "29673b677d883af356d091b286768017ed9a4ed441d90e6efe3d67d90472095e", "armv7-unknown-linux-gnueabihf-0.11.13": "c538bedebdb64be55032ff3bd152740102398da4c4623eb61161ec3527b19354", "armv7-unknown-linux-musleabihf-0.11.13": "f08585d66b9148f3350601ce98d60002838b5055d9998239b70039d1c5f7a938", "i686-pc-windows-msvc-0.11.13": "2f226cee3dfc3964928e7cac890f022fa034bc4d1fb9b6124260f5dddd23acf2", "i686-unknown-linux-gnu-0.11.13": "dc36050b624fd9a9abf2c9a8547773ef20d670646ea471b62feedddda26a9e48", "i686-unknown-linux-musl-0.11.13": "184deb0a381d73b12c0250b95e70f4517832dc035f252f5f2f32ed10f41f2d6a", "powerpc64-unknown-linux-gnu-0.11.13": "bdbb5abbb705829e5c759f549453679d875f7e7bc8e71cec1255691a3252707a", "powerpc64le-unknown-linux-gnu-0.11.13": "c1bc862c95f8eb68e164f570c5474c671bf7fe621c03bab51fb5b612ff26b86f", "s390x-unknown-linux-gnu-0.11.13": "db6d98824ee7714933b6457b1463a2d6eaf99f41ca4f9e2d7c22bb03b953bc6f", "x86_64-apple-darwin-0.11.13": "8dcc61306472f75c07af6d0446060e26227d773cee319d21900ac3a1d7bc4955", "x86_64-pc-windows-msvc-0.11.13": "d77fb4ed36392337d334bf9bcef1c5d91ec221e96c53ae8aa147e922c71ddb64", "x86_64-unknown-linux-gnu-0.11.13": "01aa32d29d00876b8d1429c617ed63a00b1fc81abfa4183bb05c9cb647fbc3d0", "x86_64-unknown-linux-musl-0.11.13": "4540e8bc5b2af73c4b79e9e993724b044310eea4aa9003cf05ed4bdee6c25735", "aarch64-apple-darwin-0.11.12": "6e8bce88be5063d3378b6fa51430655884794f6cd04a059721839dc012b7ee7d", "aarch64-pc-windows-msvc-0.11.12": "cde9c77e457edc98dd9f2ac39f1415d00117c564e7620e055da260fc05085476", "aarch64-unknown-linux-gnu-0.11.12": "a14bf81d237e10abd7fc751cf55249cef10e7952a4267fb9425296e12132f2f2", "aarch64-unknown-linux-musl-0.11.12": "80f0b463a7417b93132d7411f2ed88170b3e8176abfbd49b1fe1efae7afe4d90", "arm-unknown-linux-musleabihf-0.11.12": "77618903fd427140747782275e543038338653a59d274650460ecdfe8106568b", "armv7-unknown-linux-gnueabihf-0.11.12": "edd175894965c1b28a1cf813e4fcca030539ef69d768f79f8bd77b15641a53ed", "armv7-unknown-linux-musleabihf-0.11.12": "10709f963cbbb1c7c0c88f0302be325f0f91db8880c05b87685769b907431d26", "i686-pc-windows-msvc-0.11.12": "1bf29679dd5206c9934d42040a5bea6398ff34148c888d89100b8469178cba3c", "i686-unknown-linux-gnu-0.11.12": "2d2a09aaf570d35e8a940ee0b8451c7e5441aa7bddc114162bf76e0390c2093e", "i686-unknown-linux-musl-0.11.12": "d5f6b5e87e65b988acc2687a64fe8785d99a9a60d18f0a213bc5570d95d07ad3", "powerpc64-unknown-linux-gnu-0.11.12": "7ecd577a4f6d741e719ace85a497af26af5ccaad26fd68461245a6bbd9cbf74f", "powerpc64le-unknown-linux-gnu-0.11.12": "3b298e4e22bf5fbdd60786bf28f483341fe2ee70a2059dcdacc9bac673234285", "s390x-unknown-linux-gnu-0.11.12": "4b7626c4d7f35acf40ff59f3d1abe555cd41afc8de357a997f2de742556d15fb", "x86_64-apple-darwin-0.11.12": "a843796077ceba6aeb4a07bda0756989cb1c517ab4d1b929ead9efcde6fc17e6", "x86_64-pc-windows-msvc-0.11.12": "e82daaa5e48d736188701453c299bc8f88499688ebdada4b1abeb723965ffcd9", "x86_64-unknown-linux-gnu-0.11.12": "a2a6c25916f05b351164ae638169b9edb2149ad7f33e45360beb1ac271eae34e", "x86_64-unknown-linux-musl-0.11.12": "148e03ce15ad569066120905c86e446e066c0f7c4f986d03825c273c5e2147e2", "aarch64-apple-darwin-0.11.11": "814ccb26bed9c027bfc20ac88d33494ab0be62721757c73be70e26c23efbb3f7", "aarch64-pc-windows-msvc-0.11.11": "7c43804a3a9646edbc70eda6dab061343a5545844dbaff82ba472df3be4b74e0", "aarch64-unknown-linux-gnu-0.11.11": "26bc61fce6be2f358f656c7cc5b33725aafdc6ae6b21ee48fde10ad0d9b702ea", "aarch64-unknown-linux-musl-0.11.11": "3ca33d9b68b8b0bc7e3673b7638910ac2f7c5399303b37bec4d13c005481a78a", "arm-unknown-linux-musleabihf-0.11.11": "9d5cf3a8e5c495156479a7bb0a438f0f4bec6dbf69cdd48ede1cd508c41cd43b", "armv7-unknown-linux-gnueabihf-0.11.11": "acb854e89c24333a17cc2aba7adabab7314dc16bb92b52094661f9ca5843703f", "armv7-unknown-linux-musleabihf-0.11.11": "4e48259a71c1e806e64801bb3a55df555ee8b62360fb15f19e7ab3c496ee6f10", "i686-pc-windows-msvc-0.11.11": "507a588d22c9eb3558c86e85d50f6cbc099d52444dc05290c61ae8454aee25de", "i686-unknown-linux-gnu-0.11.11": "bd1e258d14a9a399bbb6fac468c3bfdc464858c028dd48ae3517f35b01a310c9", "i686-unknown-linux-musl-0.11.11": "4de74178a1e0181ed56b623943a3198c4f7f90da918d050e846a1468050bf4ad", "powerpc64-unknown-linux-gnu-0.11.11": "da883ef2174136c0d50570a16c01f57fd99c55e05914ba35dafd37b49e5f0331", "powerpc64le-unknown-linux-gnu-0.11.11": "ecd54e2738005a345ecc80f834f89a3d55c791e89ad43ca24becfbed79d490a4", "s390x-unknown-linux-gnu-0.11.11": "7a12eb9e85126cf9018842bc206b763211e9295ad6906e46c73b76ae110924ba", "x86_64-apple-darwin-0.11.11": "8bef00e82bc07ea26b45adcffc3d55b2d0821f3a3e4d5f441f4dd4ad608fc1be", "x86_64-pc-windows-msvc-0.11.11": "b7619ff27098a4d7f37c52fb8fc61ccfe677aaade7722a385b40f8d5273ebddd", "x86_64-unknown-linux-gnu-0.11.11": "4883053606fc9efed6f8860145bcbf66f0f421684054c156c84b04bd9bf1638f", "x86_64-unknown-linux-musl-0.11.11": "bb64b083767a5fd0a62e10e9a35614974ad53025e2878cf14a0c698680e6c30c", "aarch64-apple-darwin-0.11.10": "1c4187c5ecd76535b76e991af1114d9c9947fe69e6d1a69c9ed6723d6777a53e", "aarch64-pc-windows-msvc-0.11.10": "765234e319c8fce0b0216f570f4480b7a7b77d019347fa301536b808c245375b", "aarch64-unknown-linux-gnu-0.11.10": "a39ff81bfe023d55008943f11221d49759d73b9fe6bf76584626cfcdd33d8684", "aarch64-unknown-linux-musl-0.11.10": "acddbf808ba83c9dda01391ddd1c7f0c23d36f1f2cbbee6290d98363f3e4cafc", "arm-unknown-linux-musleabihf-0.11.10": "8647e140f06719c68220157205ef21644901dfab8daefe72cf08317e45b212d4", "armv7-unknown-linux-gnueabihf-0.11.10": "49eab0e5ec80c1d1a13737d5ad0ca69ac79227ece39750e4db38ad9f3a20f3f0", "armv7-unknown-linux-musleabihf-0.11.10": "51bf490bd5a357d76dd5ca7d5aa6724e4445a413720e3d370cf28194f12800fc", "i686-pc-windows-msvc-0.11.10": "e0aab393a0e9da99e7cadcfbad7bfa6abbe3de9e1fc69eb3e649ed27769fd7a1", "i686-unknown-linux-gnu-0.11.10": "5cab3435770f98a3171e3890b870b2bf682f1639470d46e1538a2117a0072464", "i686-unknown-linux-musl-0.11.10": "f98f40b6a9fddde57459ce635b94cacc417a6682aeab24ee1091f7486c64eaee", "powerpc64-unknown-linux-gnu-0.11.10": "084d19d34b553212aceb988f2de97f304a214f0c93a230366bae55351d0c552c", "powerpc64le-unknown-linux-gnu-0.11.10": "02abc4c8d4f40d4c2a02a4fe1edf6061ac724e95b0c65e5ccfd968b150d7154d", "s390x-unknown-linux-gnu-0.11.10": "379ae3fa5b61d8e7433cf9fa5c76aec8a7e3f17e686f55100cccb13765b4c8f4", "x86_64-apple-darwin-0.11.10": "25f0a8b819ea5c9377be02fd98c363ffb5659c35358881a1ce909f30b362cb39", "x86_64-pc-windows-msvc-0.11.10": "d77bc4ecdb0f50f5a70422db90ec735caf71c3ea3e201e6e84a78fed695a4950", "x86_64-unknown-linux-gnu-0.11.10": "ade458637abe06ff6780e0b3a5fdd281da552d33eb75b954fc2a27278258b856", "x86_64-unknown-linux-musl-0.11.10": "8765d2f71c422f60a1456a2b2d9b2ee2ab286cb4859a774b5efb0a837a07f6dd", "aarch64-apple-darwin-0.11.9": "d7955d8cf0b96471757d9733b21576b00baebecc056e3382d7023f092bfa8526", "aarch64-pc-windows-msvc-0.11.9": "bebd2f05e37101023d32ca6b0a6ca1f619b0c5faccde7df0960d96bcc2bcf8bc", "aarch64-unknown-linux-gnu-0.11.9": "8dffb447ee07405dcb0939666703a53ac38d6703abbe48db6d5ec8189544dd37", "aarch64-unknown-linux-musl-0.11.9": "a3d6ee64ce182345d88ce2d1a2960d9261d2bcf6746b85be769b31e27349f6fb", "arm-unknown-linux-musleabihf-0.11.9": "1c480bcfad71617754f9518e44db9670ff87145b79d03dec3db4b50c5a743dc3", "armv7-unknown-linux-gnueabihf-0.11.9": "2a8739fb4544a2da95d3f64f43a01d86468dc4c72d47f0cdea4dbd36767e5b3b", "armv7-unknown-linux-musleabihf-0.11.9": "5cfb13bad415b339162d60ca044c248130882ab014d648532fe789540f8fc80d", "i686-pc-windows-msvc-0.11.9": "17dd0dc46c38bf1fe4af50f1cc5b128054a43182cfb643d5ab2ac0382e94719b", "i686-unknown-linux-gnu-0.11.9": "472c13baa143869103ab40f8281d39691abc24ede7bfbcbc57bb2a796b84bb52", "i686-unknown-linux-musl-0.11.9": "d1f795e59c2e0842352b00e8301ee8fe2fe321fd5af39f419b77534b4f6bd817", "powerpc64-unknown-linux-gnu-0.11.9": "e5165cf2db7d74d1d05bc7fee0c36eb92578716a6b86d95d63c3a4577102350e", "powerpc64le-unknown-linux-gnu-0.11.9": "022579b3fc348651103a2dddb21f5844dde111d9b539f6179448e076dc9979fe", "s390x-unknown-linux-gnu-0.11.9": "f657228facc1a131a4896a028a847bba95ccf82dd6570385cacabb8f186db26d", "x86_64-apple-darwin-0.11.9": "88d5c544ac4a420b3c58e0a858a7807c545668a6a3fb9e5403ad73aa0d55b653", "x86_64-pc-windows-msvc-0.11.9": "b3c7144d40b3860b104cb88e5c8a95a326b81b3d305b9b6a2ce304761b8508c3", "x86_64-unknown-linux-gnu-0.11.9": "276f6b928f61724b255e04e7e3b9e6859f86f4eec5d1b906a72983f3365b6671", "x86_64-unknown-linux-musl-0.11.9": "7125dd1baf4f4d635a185c84fa8bef7f572a088e30d160a07f97f2c9fac70c6d", "aarch64-apple-darwin-0.11.8": "bc3fc6693437efab1add3f288d6d16fac6926e6888c1e758ec162d5b6fe9099d", "aarch64-pc-windows-msvc-0.11.8": "06c2152f269949390bdde0cc9f6d74eb3f4068853a3d772b9ac9baa675b63a06", "aarch64-unknown-linux-gnu-0.11.8": "a6010d9393e254c73c81a9942fd1d49c6d1061a84bf76e024627924adfdd9e99", "aarch64-unknown-linux-musl-0.11.8": "7a4882654cd8b7c79b0bacd0f9b2062ec08a111a7f2621c69718000a165c93b6", "arm-unknown-linux-musleabihf-0.11.8": "e9d8c2e59d97b841273369350c64113708b402372fa6fd933aef70f2d4db9bf6", "armv7-unknown-linux-gnueabihf-0.11.8": "1eda8253c82dfc9232508ffb52e1e7d320719c60781a95a0f0e2a4b9ac7d7829", "armv7-unknown-linux-musleabihf-0.11.8": "cf4e4ca7426279051c4bdfb846749b8a75fe01892b9b08247dc700ece64af277", "i686-pc-windows-msvc-0.11.8": "c9d35f023f94110fd77e0d84240b8c1daf26f923e115556d7ef1e1d3af663e83", "i686-unknown-linux-gnu-0.11.8": "3d98524a340aede7ab974fb6f62778254aff1e9a57e565a22a348fdc02753566", "i686-unknown-linux-musl-0.11.8": "01f5a7ac05eaa0d548792c309e75fa24d18b6685831743e984d56b0fc4514251", "powerpc64-unknown-linux-gnu-0.11.8": "2c45c30ed216f67148ad8e96656efa0f9a4a7591c7def32fdd9db5db86a643fa", "powerpc64le-unknown-linux-gnu-0.11.8": "85705683af19f1dfc3c90424dab2525422a1e03e487610a79b725f96e04a4953", "s390x-unknown-linux-gnu-0.11.8": "722aa00e479f58f906e7bf697336b9ed3ccf0df939b83e10f2b778a6b136bdc6", "x86_64-apple-darwin-0.11.8": "56eaecad5d4e41d2f799bbb705d83238436de4a547e5d04c0591ae3422ae61cc", "x86_64-pc-windows-msvc-0.11.8": "2279f17ad7474b9a1493ec2aab404e6f1109272d3221a5d38ee06ceb0e4c6100", "x86_64-unknown-linux-gnu-0.11.8": "8edc7a28bb958af4ebfb6a85002c8cd96d88f264dd8c080e065a6e984963ce3c", "x86_64-unknown-linux-musl-0.11.8": "d5b331c4dd88a99b3b16babcaa8dec8b22f4004b880243f35f73c276f56684ff", "aarch64-apple-darwin-0.11.7": "1c6cc5fb36fb001dfa7331892f9d808bc7ced1d45f0ec54b4caeaa571bc55495", "aarch64-pc-windows-msvc-0.11.7": "c18bc5d87b9b582f1f9da6bdf78fa4a710f9d40f409cfae330f20bf9f16ce631", "aarch64-unknown-linux-gnu-0.11.7": "ccc11afdc3d3d3b146f972645d54a49c819034b8379d190281962bfa80c69389", "aarch64-unknown-linux-musl-0.11.7": "6cf1772002cc8787f5dd24b3fa7aa86bb26ad7188854f3df40a435467ecce10b", "arm-unknown-linux-musleabihf-0.11.7": "54b2103852c9667eab6df2b22649f1e0b16e1f4106888e9e239ada1e263bba0e", "armv7-unknown-linux-gnueabihf-0.11.7": "770b301a87680d96a3400e6932028efcbd181ab22e6a8dd551a1efcc2b6df82f", "armv7-unknown-linux-musleabihf-0.11.7": "8401fd29776dfd02f68a2a13bc4aea04b4da202237a0ab9548f9e373edf74b8f", "i686-pc-windows-msvc-0.11.7": "8608f979877847e8d218c9b5bc327bb5e9ce45b39961addc8380ffd9f4833a1a", "i686-unknown-linux-gnu-0.11.7": "8b837237cd348d87f7a1a22341d65a2a4b082173d5f873caa40a45493d6a8117", "i686-unknown-linux-musl-0.11.7": "897c08c45b8fcfc90770250ea61cc7cd22badeea2b7a685d78bf5f3892ae09a6", "powerpc64-unknown-linux-gnu-0.11.7": "38fc8cd8a4432372974668cf5256d55de2158ad5d919b6eff55637b50b4e749a", "powerpc64le-unknown-linux-gnu-0.11.7": "b9a8349f934930809981bf330dfa2385bb5e8c1d3a16752710e1a66130d44a97", "s390x-unknown-linux-gnu-0.11.7": "3daa6fb92450347b3983913624636c26d9451487b02a27880bcb6665413b1b5d", "x86_64-apple-darwin-0.11.7": "2acd8b2a63749e17506cc7a4a00b2ef007a3793d365ef0b6ed2a191f77219f35", "x86_64-pc-windows-msvc-0.11.7": "9e319a18844da490949303ec5a60032f6ee8d673fb174bd4e70c8641b091375d", "x86_64-unknown-linux-gnu-0.11.7": "7f448fea7bac3320416d1465219b8bd58828bfef9a3c8398094ca6c09b71148c", "x86_64-unknown-linux-musl-0.11.7": "0caf32ab0c399bfba08d18b190dc1aaec8ea47368864a4bf3b3f113e36e8fd68", "aarch64-apple-darwin-0.11.6": "fa9a4f229431f1971c4b1d35567237706384104af464d1d34013077e75b0dff3", "aarch64-pc-windows-msvc-0.11.6": "a5b28d8f4eb6a46bdd000f11579fcb074ab3be1e3d9140c225b7111cd7f6708f", "aarch64-unknown-linux-gnu-0.11.6": "ff73176c526026b02847901b9a51a1ed395a445d3704dbf60df4bd68d06f0be7", "aarch64-unknown-linux-musl-0.11.6": "05e42f4293649535fd381c6af6527af98868703f6072711022b76fffefcb669f", "arm-unknown-linux-musleabihf-0.11.6": "f9795e7edf81afa1885409d84fe4a25f7e9f7db35cdcb7e825eb5f9adb6c9c94", "armv7-unknown-linux-gnueabihf-0.11.6": "1c94650fdfbc0923495fea6b9be92ac503896f55ca255df4a9c3758b59e98475", "armv7-unknown-linux-musleabihf-0.11.6": "e8beafa466781a59902b92979a65e1f8999609874624c8fcda30812cbad3540a", "i686-pc-windows-msvc-0.11.6": "268f9450c9a8fad32c84da1cbf3be34f2d4fdb56442cae8d73e64c6476437f31", "i686-unknown-linux-gnu-0.11.6": "00c91021cdb13e781141c7cbf3bda5429e3ec60f70a87fa71452596d48e906b6", "i686-unknown-linux-musl-0.11.6": "a0fe3d93befe5b9767deb9d072e0f0b140aab37be1600e51ae06c16239d8e391", "powerpc64-unknown-linux-gnu-0.11.6": "04a25b6c39f94d6adfba2549ad94117dc8783a097378fae21b378a7cf763ba0b", "powerpc64le-unknown-linux-gnu-0.11.6": "ee67e166d653011fd6d3ff7231eceeb4a46c544a8deed808933e0a50b7dfd75b", "s390x-unknown-linux-gnu-0.11.6": "59ac481df26bcdef791ec69c32ab43068b132f771d40f505bce6f4947773adde", "x86_64-apple-darwin-0.11.6": "5af295e50f2a7db9767964bfe1af1cd9b61004b4e7fcb9e29059fb7aa561ad21", "x86_64-pc-windows-msvc-0.11.6": "9fbe8bc77738d2f231d580e315c54bc615b1bec22a6df4201e1d9a821f842ae3", "x86_64-unknown-linux-gnu-0.11.6": "ccfaf04f1f912c77ff12890717a4390166ea955e51d504a6f68c2fd2bc70c39e", "x86_64-unknown-linux-musl-0.11.6": "e5d91ac0472fa84942fd82cc9289637c9ec5a4669b8b2e2be6f61983707c8973", "aarch64-apple-darwin-0.11.5": "4a5b1a44412bda817debb67d826a565f11b235744870b509f44102403a3a9e89", "aarch64-pc-windows-msvc-0.11.5": "b31e0b25db4810115f714669152ad953e2b0902630c730457152bddebf2ca3c2", "aarch64-unknown-linux-gnu-0.11.5": "49955aa67dc524dfbee37ce3749d7f9331ed2d79c3a204da1729068d2f41d667", "aarch64-unknown-linux-musl-0.11.5": "77c11c7a70d3bf499915bab5a7691e955f4127164c4cfb7ef4e0773892ed2509", "arm-unknown-linux-musleabihf-0.11.5": "e84eb046fd064e34328c9e4dc931f48553d4b15899794aee024e7f3d22fe7292", "armv7-unknown-linux-gnueabihf-0.11.5": "da597c4e014c59dcc7826fd088d8cc12d3a1d22cbd7da6128b399c5a364781c0", "armv7-unknown-linux-musleabihf-0.11.5": "9f1b0efe535b1f376b627ca91adea6bcbaf25202f4601644dbdf45329f351a0f", "i686-pc-windows-msvc-0.11.5": "d3333b62d4ef26d2872f6c0f3f6340da161f8e4bbc7359dd9a8eab2cb4bd2f1b", "i686-unknown-linux-gnu-0.11.5": "70535bc5f92315af0f738c1ef2feb3653a5f4168a360d9a305918c3c4ad13e70", "i686-unknown-linux-musl-0.11.5": "240a76da851374d14851d0e1a90e4cb289c9420fe502e7cfab66d1aafaf130b0", "powerpc64-unknown-linux-gnu-0.11.5": "38f85d692148fc2142dbc215954fb2c08bebf9cbb23c2cc24b7c92a938bdf05b", "powerpc64le-unknown-linux-gnu-0.11.5": "2e51789ce389d15852a39b7204ed118f26dcea989a98da513433b0849901795f", "s390x-unknown-linux-gnu-0.11.5": "c8908e1e157f0ea5579be71b3fdc52c86f440e87026c4894d4b232d4797f9394", "x86_64-apple-darwin-0.11.5": "c28725c6421d5834b2cd16c7b13c3831b3363d6d558448d7dd3e0aa695551f94", "x86_64-pc-windows-msvc-0.11.5": "2679f4187e5cb317c5a1af17f6114d314b0d5534147097773e1cc0fd8b512429", "x86_64-unknown-linux-gnu-0.11.5": "291972831e6dc576caaa393ed4a8ed0c4d82e0ff4ea08d4e849d6e5ac840a833", "x86_64-unknown-linux-musl-0.11.5": "067c1c6c4d6033b65fe788f5310075686110b286a102431fb19883c079e2fca1", "aarch64-apple-darwin-0.11.4": "55a555097986e7cf0f84ce564f1638ac1da23eddf76d4b1b47489f3922cf8ae4", "aarch64-pc-windows-msvc-0.11.4": "90ff70103285d09929f7b31a11c30bd2c5df752e2d3a61e540599cee06c39dc9", "aarch64-unknown-linux-gnu-0.11.4": "6fbc86c6668dbf910d95722e15d0504e1dc40b4ed0a0270ed1d25d43e44aea80", "aarch64-unknown-linux-musl-0.11.4": "c8e81e2ef126c2e033ca6e374bffcea7f21cb4c6bf8c7fff51a140e2d15bcb7f", "arm-unknown-linux-musleabihf-0.11.4": "c17dd23ebca317a2c3224ffa6c0617e353633a0ec7c7149f0a61dc9828cba73f", "armv7-unknown-linux-gnueabihf-0.11.4": "71584d500a601b77745d76aef81a11cd92b7200f42c663009a8b3bc03e68479a", "armv7-unknown-linux-musleabihf-0.11.4": "4cd49dbe93944fc1e9bf826d0940bdbcb171dec346db1ebb25681cc1a31e1a77", "i686-pc-windows-msvc-0.11.4": "2d068600be4a657b888ab4654c94b0f7f63d3246ea7fff14b734d2ab0053718c", "i686-unknown-linux-gnu-0.11.4": "5035f3b7d46f8b5661a0335ebfd78e1f841210bd601b98ce3793572fa8be744d", "i686-unknown-linux-musl-0.11.4": "8b8b48eae555dd67cd224b8f072ff745c13aa1bb1842afb9f1052bc9276a30d5", "powerpc64-unknown-linux-gnu-0.11.4": "a7403d043978726e2fa665e16419ef2e3836b091036c9c38426ba1872492a9ea", "powerpc64le-unknown-linux-gnu-0.11.4": "af9cc3230a7515b4f1359950c5a2288d0c3bcbbaa3b892e729227395cf1e80c7", "s390x-unknown-linux-gnu-0.11.4": "655287e21286ccfa6e203b0d7d904cc539be59f16734b3a273a2cdbd0a37deb1", "x86_64-apple-darwin-0.11.4": "744d62f6d3b35b8a01c5e4d08cc8a61dba28d289747f20cf38d4945e152b9b5e", "x86_64-pc-windows-msvc-0.11.4": "b8b64b08a371e195fd76a9a4f38d30de9ca3c0151eea776d55c53324c3de4ea4", "x86_64-unknown-linux-gnu-0.11.4": "69b9d9228ecadcffec970976e7d5c989064c2129ab03e606b3f96e588bcc1ffc", "x86_64-unknown-linux-musl-0.11.4": "116444192ecb0378e06a3665069b344e80acacb4e7071cd25e4026b70eaf3080", "aarch64-apple-darwin-0.11.3": "7c265ea9176ffa8310adc8e8b8e3274e77dc663f0404fd6f92fd417e159f413c", "aarch64-pc-windows-msvc-0.11.3": "281f3e2ce6d17409e54f5a6a883e1aa8bdfa70d86baca74efb17b617094926cf", "aarch64-unknown-linux-gnu-0.11.3": "a1696128279f927f67a051949edeba9359ef20366b4349c1cc1b8e690b59743c", "aarch64-unknown-linux-musl-0.11.3": "b98da720f726d5e42a89bafe3b7e40dce74f0493d92e675cc4254349a25a2f6a", "arm-unknown-linux-musleabihf-0.11.3": "35315a8a41dec64ca36a5b030ac41dbf4505de4eb4aab7e41bd07e520746e7fd", "armv7-unknown-linux-gnueabihf-0.11.3": "9eb3fdfd64649c20a6f2765e34585fc3a7ff5a3beb64fcafe2f8f9b2fb8df680", "armv7-unknown-linux-musleabihf-0.11.3": "d7d5b51c748421420903805c851d47817749d1f6c99d1ef98ec9a4e990df57a1", "i686-pc-windows-msvc-0.11.3": "e4a3ad502c4ebcb50e54acc2643aecb2c3adc16ed00d2bdac8ab08898f508431", "i686-unknown-linux-gnu-0.11.3": "4dac993bf409508831a0060ae46993615dac5da670ef2958a6202d9a878e36be", "i686-unknown-linux-musl-0.11.3": "c3d654428a9aece53d684ec94bb5b93ac530b801167e193de4973a93b1f5cef0", "powerpc64-unknown-linux-gnu-0.11.3": "32f9fb6f641d8dc68c429bd82bd551184fe8d60b8b1278fbedb9cf08bf3c5a14", "powerpc64le-unknown-linux-gnu-0.11.3": "1f10bb8de6808f07e95ab75736401189980d3737b969c99eb390586e16a818be", "s390x-unknown-linux-gnu-0.11.3": "0c92a5798cb2e1955500f159535258983358546cb07c292b2f3398c0a8e935aa", "x86_64-apple-darwin-0.11.3": "b209590d1f856c9db5817ad8f5143b1a772c16e1429aa19cce2e299507e1898b", "x86_64-pc-windows-msvc-0.11.3": "d5649ba04579aa66aa876862fa58d28ebe327513e7b4d89f087f04992ec69f4c", "x86_64-unknown-linux-gnu-0.11.3": "62568251d4dba83d5430ff0a9abf165bc8b7fb0372650fa7d5565634f6b4248e", "x86_64-unknown-linux-musl-0.11.3": "a2e4cfab3eb83f0cf6717e88da734a4c783c0545f1be402026d1376e5de3323c", "aarch64-apple-darwin-0.11.2": "9961fffc17d3a8f6ce8bb92f0b2a90fda80f0ea2d0c1346d6117bb4e18f34913", "aarch64-pc-windows-msvc-0.11.2": "a41f4e8822701ef3391831365de8adf3b1cc976726a93a54216de00cc34dea93", "aarch64-unknown-linux-gnu-0.11.2": "7f35af7323a7ceeec1d83e64ae669f87d38162a8267af88fff9a3f9b2c89a2f2", "aarch64-unknown-linux-musl-0.11.2": "51dc675fa09661f49cf8accbb0e1c115a5e3e00454c4619a63ba10e7f90a5852", "arm-unknown-linux-musleabihf-0.11.2": "5e6d9531cbb4387d8d7c652bba4d8161f305b98459496b650149872dac0ca1df", "armv7-unknown-linux-gnueabihf-0.11.2": "afcbb4e46d6ed3d5970a36863c3c6233e58c20bb7c762c78c68cf1d3d4a38f93", "armv7-unknown-linux-musleabihf-0.11.2": "5b7fa555836ca342950ecf9a6ef5ffdcb917f2b89d663580b327f0f0b0f5ac0c", "i686-pc-windows-msvc-0.11.2": "17d350f5a0a517ef535bfba1420b68189c0a445a3a0e19bb06cf9c3aeb8a03c6", "i686-unknown-linux-gnu-0.11.2": "8b27e39d4585964477f46abb6fbaa1804b6c35dfc86111d2d64e98632e49f0bf", "i686-unknown-linux-musl-0.11.2": "68129ce67cf5a606035ebefcb7f5ddd9235c57e54aed079b0df932a4c2a319ed", "powerpc64-unknown-linux-gnu-0.11.2": "67b89d962667af4700392d21fd78d7ace6c32f04085f3a5272ffa54f39a38b59", "powerpc64le-unknown-linux-gnu-0.11.2": "b384803d8b25c1980dd54987e2adad895953d97a950115738d4faf8c0f115f05", "s390x-unknown-linux-gnu-0.11.2": "a630420ecebc3a1a94ceb7131703342d4f4a70a29f5d7e69c96d21d98556bf23", "x86_64-apple-darwin-0.11.2": "acfc4c703112ff58319ad4b30382b88531414473daad4776066ed22fb86351e1", "x86_64-pc-windows-msvc-0.11.2": "88feff8d7b746b9226e4370e6563d12bf40e58e3233c18cd0c41f26c415e963b", "x86_64-unknown-linux-gnu-0.11.2": "cc5ebc29bc0493a2f42654f757573d062d0984ce91bd796a41109ab643ef4e3f", "x86_64-unknown-linux-musl-0.11.2": "b09844718d52aa72e914bc0eb806d2ea01ceea006378bc515170e4eae8632ed8", "aarch64-apple-darwin-0.11.1": "d41de7663c80b83ec3987a89d30f9bc64d49487bcf45078483944a80581e1a61", "aarch64-pc-windows-msvc-0.11.1": "ee7211b59f05be0e5c5fd24d5dc05591644fac4c15f4f013e5975511b27b9402", "aarch64-unknown-linux-gnu-0.11.1": "15b1fa9f855c62951d93d429af1a33f082e3a7192e4a1f1e7108d9b574921796", "aarch64-unknown-linux-musl-0.11.1": "c20e9c96e49d7e85c9bc32ad2a139016a39bb63df6db214de539125bda1f3d5d", "arm-unknown-linux-musleabihf-0.11.1": "b3281686a846322df070772efc6fc359480ae04bac0ca61a3cfb14f0c6b53c24", "armv7-unknown-linux-gnueabihf-0.11.1": "820eedda2fbe8cf66e8fd3abbaf2519b338ad5712c53ae493cb75f12dfad4651", "armv7-unknown-linux-musleabihf-0.11.1": "0ae6426c7cdc8649464350f64c4f07065199b38477257326bf5547a409c3d224", "i686-pc-windows-msvc-0.11.1": "0a3931aee2ce36a9604109b9edb0e02e2a07401957fa2da125f4fa2199a836de", "i686-unknown-linux-gnu-0.11.1": "15bef7202e0f82b8cb6dd9eaa3101e090ee1067d379c249d447337eb016bba2d", "i686-unknown-linux-musl-0.11.1": "f7c69e12e319b6b9a89ce4533d3a0aa35b6006d40eba1cfd79dc19cf44002373", "powerpc64-unknown-linux-gnu-0.11.1": "8bfa85a3f3b0e127c8141e7cddd7f6b0cf5fa2935afb34236ee8c2e2b7d5201d", "powerpc64le-unknown-linux-gnu-0.11.1": "0a4b4724d97e820d74a036e984b92a4027e506723d4ac6adacd3d6bcbc97d586", "s390x-unknown-linux-gnu-0.11.1": "a31163314be04affd81186d052087333f71744c38d7142e7169c2cf92f2c3ebb", "x86_64-apple-darwin-0.11.1": "db8cb26297357754b034c043b600f648162ca3b4c3d6b80aab36fac9b30be21e", "x86_64-pc-windows-msvc-0.11.1": "ea0371400228fcccd81c4d6884caa4c80d694cf73a20b6e9a685b0fac76c2455", "x86_64-unknown-linux-gnu-0.11.1": "2eb2238227e232a7b6e2da71586e8d7999782a0b2d9ddab7d3a6354a13d2589c", "x86_64-unknown-linux-musl-0.11.1": "a57ab099cdada4265eb7558f63c724799121daf542e1103ab95f1be86f5d70a5", "aarch64-apple-darwin-0.11.0": "09ea313f2aab3844432b46c6c5e3e066b26ae4953f4bac1e545176e5dea22306", "aarch64-pc-windows-msvc-0.11.0": "49c1a9f99aa0e606d66960be12bb21e40da190e4798a18df0bf361c99dc644ad", "aarch64-unknown-linux-gnu-0.11.0": "e4e69fe47ad319aeef0983e26e927907d7521214a7d72c79cf2e2b15316ecfa5", "aarch64-unknown-linux-musl-0.11.0": "60904d6d51b1a8dd49ab948dd1de33ce439ca872c82faa5dab90fce838539317", "arm-unknown-linux-musleabihf-0.11.0": "0320e9cf0684cb7bc4ba38030fc4dc55d2bc6f373c182b13b5874cf43130e749", "armv7-unknown-linux-gnueabihf-0.11.0": "c04a60e29efcaa554e7c56bdf4eb8ca472fa77fde3b59e100c25b903a518f32b", "armv7-unknown-linux-musleabihf-0.11.0": "85f4aaf213fd8ffdf259eb1e43a775d093c8ac106188cc6baae036317f4510ac", "i686-pc-windows-msvc-0.11.0": "92c1b065f33dcd88efa08fb374a81d9687430faee11c18f7d3dea12ad88ee163", "i686-unknown-linux-gnu-0.11.0": "f61a226452f6b6b68faafacf0ded2ff9d53a7c6a48dcb7b87b4012dca46303ad", "i686-unknown-linux-musl-0.11.0": "3046960555a10daf0d86fe976283391c97200669b5c840e387a607a378f1ca6c", "powerpc64-unknown-linux-gnu-0.11.0": "c8aff47b5b2492a889d9c5f04b3d16d4b5787d11d728dd4f390bc76debcf35db", "powerpc64le-unknown-linux-gnu-0.11.0": "4dd6f67ef8c993c3467a7fa1253159a98e26c28321ec5fcaaa46bbd8baf2b40e", "s390x-unknown-linux-gnu-0.11.0": "411dfebaf45c3f119c11f2d1ecbec7874062b75baff0ec9ea3a20dcd02477a8c", "x86_64-apple-darwin-0.11.0": "a208dee9c1a7a063dace746836fd2d7e5f7694d2142700d3964fccf141ada555", "x86_64-pc-windows-msvc-0.11.0": "92e87a04f5750312a5454610633f6af91485578cc1dd944b4692d2fb5f6188dc", "x86_64-unknown-linux-gnu-0.11.0": "ad61c55a3b361e4f451e90247d6ca6018c2563f41c5142c1f8388138bdac96b3", "x86_64-unknown-linux-musl-0.11.0": "3148cd8131ec4f525551b16a57186f5533c705950269cbee7674d484ca6eefe5", "aarch64-apple-darwin-0.10.0": "1da279b8302cd86f50d38fc8ad62cd12f4d07c0c402c13a3bac7dc244c7db138", "aarch64-pc-windows-msvc-0.10.0": "e40d9d7efe47fcd1a5ffc2314ea45076d71cf83638550c5b95f9ecfff3cbac2b", "aarch64-unknown-linux-gnu-0.10.0": "c5fefbb03f7e885063f311d532494b0702dd72689c62ef62cc0c803a27acd50a", "aarch64-unknown-linux-musl-0.10.0": "7b9fe2e2cecde897fb35a1a0bb1ccd10dde3395acd81aea7e5e6b0b24824e7c7", "arm-unknown-linux-musleabihf-0.10.0": "194358d10125ab02e1bbe163664f3d45133f1cd2c0d536c7f4f89c54cb13c525", "armv7-unknown-linux-gnueabihf-0.10.0": "d4a12c8710386d2dbe1b0c77651b49eb26650712462cbef24c6b56752271b5a4", "armv7-unknown-linux-musleabihf-0.10.0": "333d6b0e1ff9d2114a1acc8d28fabc911e0c911d055a36b6d072428cac003a0c", "i686-pc-windows-msvc-0.10.0": "81477cb2152d195cfa7181773d8a7c32fd9bd2f9292e8e8ce7848fdd2d7bebb8", "i686-unknown-linux-gnu-0.10.0": "ba25c96731474aee9533b706ca89467f79469c0cb4599a799bb0122373c984cb", "i686-unknown-linux-musl-0.10.0": "f0ae870fc0aa8f77da3fc5d39489c46a7f1fb0c504bbd700729ce54bb0804e4e", "powerpc64-unknown-linux-gnu-0.10.0": "41db344c0740af4cd38fa3c332abe0aebe2d98c8e1d18a5fe4f9316cae39f61a", "powerpc64le-unknown-linux-gnu-0.10.0": "6d15f4fded4493744def7b44f0ebfb49567830a77d7f49b21f9710f2d34f461f", "s390x-unknown-linux-gnu-0.10.0": "6b28f1d1e6608205fe5f8b403fe5e3a4276dc0d3030215a7d6107495977f1b53", "x86_64-apple-darwin-0.10.0": "2388af7881c7e50026388e953fa6eab7c1ae94c868926a6185c3cb38f9f15aa2", "x86_64-pc-windows-msvc-0.10.0": "f97160653dc9f9dde5cdbe8b24a53cb93a43e54ee30da6b995cf667c2e599ff2", "x86_64-unknown-linux-gnu-0.10.0": "fd14f35039302d96e7cb810350627239f122c2f4334580a28a9f5f9486b2c7c4", "x86_64-unknown-linux-musl-0.10.0": "5e949f667a1dd76ab4382ba713fed3390ddc6088147ba0eb70fd8aa2ec564751", "aarch64-apple-darwin-0.9.10": "1fccbd53431eaa596f2322494edbdc444f99db651566188fa0a9820c26bbef77", "aarch64-pc-windows-msvc-0.9.10": "3e89dd753090ae81947e8e2ddb88cf0475c931041d92afb95654ade5af54d7f7", "aarch64-unknown-linux-gnu-0.9.10": "95932bcc42d2692e9bb14055fdd76a7ca6d3750d447ef1b1ef0db074024f92b7", "aarch64-unknown-linux-musl-0.9.10": "c131df77457ed45aa44b617194563ceea2e29e595c42d06804e04155529423b4", "arm-unknown-linux-musleabihf-0.9.10": "bcb333ff3aa7600bbeee4231e75936d3eca60fb5c4c097c017b3b83756a9d2af", "armv7-unknown-linux-gnueabihf-0.9.10": "3daf5c538959917b5fbb83bd06f56b61c3495d92c8fe8dd973779cf6500c922c", "armv7-unknown-linux-musleabihf-0.9.10": "0768244bb055459e392c62a98ab0af3cec47dd126e6c504aa322ac6c5cb0f891", "i686-pc-windows-msvc-0.9.10": "a4ebfb2e8521e01dcd4ac4ca554b29e24157eb042c2a93662c7107bbb92d90ed", "i686-unknown-linux-gnu-0.9.10": "a931b4eda4499872d3f7b4b7d4f92e687bf5526f0e14164c9ebea046c4c44ef0", "i686-unknown-linux-musl-0.9.10": "86b53473143154ff56f186c5ff59cdda85f4947f90156bcbc7c0a2bcc322ca09", "powerpc64-unknown-linux-gnu-0.9.10": "08402302e254aece133dc7205fb225a11a8fba62dcfc5d84a9a54dda8036951c", "powerpc64le-unknown-linux-gnu-0.9.10": "db6b48fa692d54da27c8434079ce87e0dc794be34516c1fe8ada835c62a00b7e", "s390x-unknown-linux-gnu-0.9.10": "00a0b73e3a26355e8d9ac575cb39c7cc64993f020cdceadce03b5814f1edf3b6", "x86_64-apple-darwin-0.9.10": "1e5080489fdf483e7111bb1575f045ec13da2fdbfc6ac5fd58b5d55cf9cd7668", "x86_64-pc-windows-msvc-0.9.10": "f1e75b080ea1c83737d0ada30a1338ba87d7792ce1dadd67daade720b539f8f7", "x86_64-unknown-linux-gnu-0.9.10": "1612de28c132b9605da220014177c5c9963f3ed3db203951f22968306f183f97", "x86_64-unknown-linux-musl-0.9.10": "15e93ee078beb5ec24d1afb02a1cce2a873ac627d378c987adda4f6ab3b5f886", "aarch64-apple-darwin-0.9.9": "b4fc98b638b903e7d5aa6ac245c955077e672b6b2072b9a5249c15ff0a9052de", "aarch64-pc-windows-msvc-0.9.9": "48ef6bde8d31c3e959e2ced28d033c948dfdf7bc06578865d404987be88c89af", "aarch64-unknown-linux-gnu-0.9.9": "34b4ea311560d5e7f80597eaf3dede9ded194dffe131d7fee8841904792a644c", "aarch64-unknown-linux-musl-0.9.9": "df49a2ab1b62b6992aaeebdf590751f9c6536eefa3d149a1e6dd454b7d3b5681", "arm-unknown-linux-musleabihf-0.9.9": "c081bbd7268f65e77e91596556ac4c81506dd8fe09c50a6791fdce1be8ae4e5d", "armv7-unknown-linux-gnueabihf-0.9.9": "11c98f90103a409b55afac3534a0396e38a055bfa09e45b774a298a6107899f1", "armv7-unknown-linux-musleabihf-0.9.9": "1340a24f74782c95cc78b66434ead244a38e60d2a4f07b0954b5029272566794", "i686-pc-windows-msvc-0.9.9": "4c0355a6c9ec92d89c8802aabd84a7e0fcf27794befc51a1c7a58bec2b70e5fd", "i686-unknown-linux-gnu-0.9.9": "d9648994937c8e24376b1e300b56edd2b45266bab42ec400cf7090bfbefe0927", "i686-unknown-linux-musl-0.9.9": "8e11ac8533c438003be1df417397e3467cc51675f579d7b906b46339ab43530f", "powerpc64-unknown-linux-gnu-0.9.9": "5e6a6039646e2bdc32b254a0feb6842bfa9c0a9c9d3301de6996720278e9550f", "powerpc64le-unknown-linux-gnu-0.9.9": "38b40dd824bc32c97ad250a2108debfd0aa0cf30ad011702b8fb96da476b7d7a", "s390x-unknown-linux-gnu-0.9.9": "3d06a0c49b4c287769538033fc2be0b0b7eeb74d5b36344c272fb31d37718271", "x86_64-apple-darwin-0.9.9": "518e891bc5f4af795fe9a49f00bc9db9b8258e0d73d452eee8ada15471a2ce95", "x86_64-pc-windows-msvc-0.9.9": "13ccd981a38af7011844f8125210007aef026ad59348db9944a083d6081e660d", "x86_64-unknown-linux-gnu-0.9.9": "49592925719ee59a7e6675a95dc20e76c0b921b498500a54b1cce3c314fdf794", "x86_64-unknown-linux-musl-0.9.9": "a29c014960f68045fd5e52df20889be801ad92eda0961c4aede191a6d01dbee9", "aarch64-apple-darwin-0.9.8": "5ea25e5c3b6c825a9b860fe0162ef8dd248c31bf00d63a107a38ef7318988c80", "aarch64-pc-windows-msvc-0.9.8": "6b14e0a3a3d5e783ddc1e3dbecbb3552c0b302a096af88e7b57323bb6d88975e", "aarch64-unknown-linux-gnu-0.9.8": "82dd223919efd3f0a46b1eb5b7bba17bbf86b408c8fca203f49eb920888dcada", "aarch64-unknown-linux-musl-0.9.8": "6a86bdbbfd9c43cde7a15f0a1ef5ad8ec3b21e319ae178caa3b384bada3a20fb", "arm-unknown-linux-musleabihf-0.9.8": "2e7bcd94f0aaccd418d5d8425fbfef37270aa6605d2072350570eb9e7082e804", "armv7-unknown-linux-gnueabihf-0.9.8": "3036c3b6ce3b1ccfc5aaa98a55649a4c4347fde171b519ad8f41ba5944bbf789", "armv7-unknown-linux-musleabihf-0.9.8": "7cccfd2855f07e7038880b68a35efcf3c2c35f7bce6b097e340399510d89877e", "i686-pc-windows-msvc-0.9.8": "3f5ab787bb2e39ce582675af5ab600f4e08a4f65c44e34e7b840cf6a231bd43a", "i686-unknown-linux-gnu-0.9.8": "461ed20d81247e59cec7b132180355a4ed238bb096f3e743b101e0e9cd982715", "i686-unknown-linux-musl-0.9.8": "5fc3e649929fccf8be516a347b6ea67e2102760c36d95562c8839025087bc08d", "powerpc64-unknown-linux-gnu-0.9.8": "d584cbb844cca74754382fa4330ff66a2e26ae072b2fa84c965526120bed8469", "powerpc64le-unknown-linux-gnu-0.9.8": "67812e8647ff88304a92f724fe84a39c78da77f596e870bbcddc63c470a05f46", "s390x-unknown-linux-gnu-0.9.8": "b91f9111104a5fafaec6581cdbbb658bc8c7411c45945887e66c6b658a419f3f", "x86_64-apple-darwin-0.9.8": "88fc6143eaa9a6ab247163ad9cba167a8384d80d2260b2a9dee1fd3c87ca7d52", "x86_64-pc-windows-msvc-0.9.8": "7144401f70fe7410a771537cf2bc6e50a82cf95a2f51c611397ed4eccb777409", "x86_64-unknown-linux-gnu-0.9.8": "905172846650475d4e163b6eb34dac4660e4f10d7ed886846390865e49e7e6c0", "x86_64-unknown-linux-musl-0.9.8": "dc24ad1fd3af5c3ee9101d3bc5f04b648f3037dd206ffee7088f52ca5fa4c10e", "aarch64-apple-darwin-0.9.7": "f14437e71399e14302bdf5ce910e3df9abc9a223fe0ff5d6b02eb083c39fa30b", "aarch64-pc-windows-msvc-0.9.7": "724a1d87421e125759e9b7dbab16a4d1034892ce4180aaaf61e3ebbe7e67afa2", "aarch64-unknown-linux-gnu-0.9.7": "95d2a031a3de3ea5ce99febcbb6891781ebb430213115c1f729578db83109416", "aarch64-unknown-linux-musl-0.9.7": "b94ad94bc0cf14a12a725fcf2383ed047b537068f4b33bf0815e8baf35e6ec5c", "arm-unknown-linux-musleabihf-0.9.7": "ded01d55a349302b0b47deceb144886b7a3767f71d717fc78bb94f1aed1f4e24", "armv7-unknown-linux-gnueabihf-0.9.7": "6cc563095f798a67bfe55a7ce1e652b238a5c09aaa543427ce7562cbbe482dea", "armv7-unknown-linux-musleabihf-0.9.7": "688a0baae40a5da8489a7c581b7118ff79dc33e862aac3f032e400e8515e6d45", "i686-pc-windows-msvc-0.9.7": "72e941fd8177a8cf9f4b9a56e8c8a8262440b98b69b415062c06709cdb4d9361", "i686-unknown-linux-gnu-0.9.7": "4c0141f1b7c5e68b1f195097ed7993b12c2d593fcbf650196e0e50f8de8fe282", "i686-unknown-linux-musl-0.9.7": "407310c90618470d5f76b1761040d1a0bc0c3b4d65d8999fcad89ad7e622e0be", "powerpc64-unknown-linux-gnu-0.9.7": "f304a482ef6cb78909d38dc4fde20027ac4a9cbdbe37b007bd48d2f95b11059d", "powerpc64le-unknown-linux-gnu-0.9.7": "8d9a4807f84f0b5520d8c1606d0b2bb8eb85adb496329d2f88699e41b0f098b6", "s390x-unknown-linux-gnu-0.9.7": "153ac343084d6b5f6605b49c1800aabee9dea02f5c6f9110967e8dcc05b6a36c", "x86_64-apple-darwin-0.9.7": "2a0fd12cd66d20a882ca970159ef361d5f397b938a5ab9d7619dec0f15152f53", "x86_64-pc-windows-msvc-0.9.7": "236c69ed510a3302f40b5e0ec1cde0cc7535146cd37658e6d3168c85e94e308a", "x86_64-unknown-linux-gnu-0.9.7": "902f9ed51f13ed04eb3dc855af99d70e682846c538521a1b2c1b04c170bb5a7d", "x86_64-unknown-linux-musl-0.9.7": "f0b7c7a5ae446730ac111904a504cb96789cc1c82b9966b55bedd88a6d3ec077", "aarch64-apple-darwin-0.9.6": "a3132eb5e3d95f36d378144082276fbed0309789dadb19d8a4c41ec5e80451fb", "aarch64-pc-windows-msvc-0.9.6": "7c397ec18e458c7a7e49277d7d719b0b6bf2f459f570e01a9f1d1906d678190e", "aarch64-unknown-linux-gnu-0.9.6": "cf796c953def5a7102002372893942fac875ac718355698a4a70405104dfbb6c", "aarch64-unknown-linux-musl-0.9.6": "8f64e97deae1c12f659fd13e6e14d78cf15ed876d1548ac76b235f78ab5803e1", "arm-unknown-linux-musleabihf-0.9.6": "ec72087fa80aff95871aac0f8aa8ca708a82c6789641ac8362fb58212cfc5410", "armv7-unknown-linux-gnueabihf-0.9.6": "fba48ab2b77a358c2600d5636759ed779b29bebcc8de66e331c00d7704c41d1c", "armv7-unknown-linux-musleabihf-0.9.6": "4944aafeab7ce9cb5a000bdaf71e38a917b506574f859d333bd4698efd5fd3bc", "i686-pc-windows-msvc-0.9.6": "05c50165f1330d797de444d99c1c9230dcb2377c2a7ff9b9f8718dc5617c1d4b", "i686-unknown-linux-gnu-0.9.6": "508a2f35904b986bf7cf7e2a73d138b1ca590daf4ee562c4630c60aa5ba39922", "i686-unknown-linux-musl-0.9.6": "16acf21b61fa006b5642443bba4c52e84d2ce2b15cba1f616a856956c5a2ea49", "powerpc64-unknown-linux-gnu-0.9.6": "1309f5489bccfb99084f9686ec20ca1295d7aa976a2c3e6dbeb822564269cbfb", "powerpc64le-unknown-linux-gnu-0.9.6": "ff0e02c901869fef9c7434be347959ddca64f585a089ac6485592c91c279c803", "s390x-unknown-linux-gnu-0.9.6": "c5ce85e5913c2d34d3332452e01c12e28a45c15ff33c8e8d30572070979230ba", "x86_64-apple-darwin-0.9.6": "ec88c095036b25e95391ea202fcc9496d565f4e43152db10785eb9757ea0815d", "x86_64-pc-windows-msvc-0.9.6": "51f492e46d967c6a3bb63d5e245e8f454ccf6f5207b6f3c4f1b63a8bec30d954", "x86_64-unknown-linux-gnu-0.9.6": "bed850f15d4d5aaaef2b6a131bfecd5b9d7d3191596249d07e576bd9fd37078e", "x86_64-unknown-linux-musl-0.9.6": "c725f57aa11d636f1d7f0f378c604d4db29c4dbb5ff0578f9fbbc578364875df", "aarch64-apple-darwin-0.9.5": "8c9ae3e71317b67f46752a239f8d1044c60ba9d1748d3146af6ed26679eb697f", "aarch64-pc-windows-msvc-0.9.5": "75882eebde374c8f6016f3501c4a769ec1d13cb07798de77187542f9928eba44", "aarch64-unknown-linux-gnu-0.9.5": "e637a06d4b8b9f5cced6ad6f1f0a6ec5c1f632db7a3413cac76b61e670409afa", "aarch64-unknown-linux-musl-0.9.5": "3c5085b2b410ac9449c72d659ac9812eb75cf2619253e53915507a7fec5267f0", "arm-unknown-linux-musleabihf-0.9.5": "d92bd2ca743d7e5cad0c63597f05c5e97f92940e8fe2e9f388185e7c5ebedd31", "armv7-unknown-linux-gnueabihf-0.9.5": "61cef37c13e16eb3ac06c46e9d80a8da21a08882d3bd9171a3aaa17f770c23aa", "armv7-unknown-linux-musleabihf-0.9.5": "167fc22a232f37d77f1bcb580ebe26f13b57130d656c5970ceadc7f356dcbe5a", "i686-pc-windows-msvc-0.9.5": "6ea88e4aab7c4bc3e8c6f580b814d3a5aa05795e10c9b01e467ecfa8fdc58823", "i686-unknown-linux-gnu-0.9.5": "3ba63fab8cb42b689543eb560e3301dff320f01f24603cc09552b644266a081d", "i686-unknown-linux-musl-0.9.5": "307a970b43dfaa419d2baf340555a3ee78eaa65d940797a6d469ee10da3581a6", "powerpc64-unknown-linux-gnu-0.9.5": "9b64bc415661b503b0ae6716bd8203cbf54342c60a8d75ceed5a0b7c48a5a038", "powerpc64le-unknown-linux-gnu-0.9.5": "8faeaec0843bf19de8a6e64289ce1dcb4205c82b4a4d189e121137b194c15a5b", "s390x-unknown-linux-gnu-0.9.5": "b0506369986af415dde8568d5433f9bc801bed310162221677a6ba076d30f26f", "x86_64-apple-darwin-0.9.5": "4b141507ddadaa524af4ca19eff0fe7fe7a50c45e61e217ff6721a6be9796634", "x86_64-pc-windows-msvc-0.9.5": "48d096bc53e4c0d7434965c6b4bff911e53250cf8da8866a95b85ed4107259bf", "x86_64-unknown-linux-gnu-0.9.5": "88ac7931cffa4e247e465b2aa4ed890af7a134e18a422f5f79041a792aa1559b", "x86_64-unknown-linux-musl-0.9.5": "ef73516d8b7b284cd1a6b8ae33cad373516c29ce3e0eb82744d73def5e516832", "aarch64-apple-darwin-0.9.4": "48927361be76a93dbded0555d374af3172fc4010b54d97347957f6ab509d7e33", "aarch64-pc-windows-msvc-0.9.4": "3c14b5fcfae80d22532f895fec0c84dbc9c387a766368b460c3c96aa62b83562", "aarch64-unknown-linux-gnu-0.9.4": "b165463041685c958a978f0f4e78fb4afd9aa7729508c4eeaee703b0411bd6fe", "aarch64-unknown-linux-musl-0.9.4": "a9e880d819f290fc602768d25065c1316401229d04f0efaa7440017459968b11", "arm-unknown-linux-musleabihf-0.9.4": "0f1d4df0f31f9d874e59668d648126c6bbc796a22c65127dd2a4759de02879f7", "armv7-unknown-linux-gnueabihf-0.9.4": "cb8e19d7ad75c7eb136e2b3ae47d576d9f57c86a6e005b84db2da4cdd2d5f3e5", "armv7-unknown-linux-musleabihf-0.9.4": "4f2c10151af528935d56ad216125feef7cff4784619f6d62ea749ce037793285", "i686-pc-windows-msvc-0.9.4": "dae8a08a794ba0716cd4d48a84a3605f5049cef1a70381906b7ec9731915478a", "i686-unknown-linux-gnu-0.9.4": "2aaa7c5d8d6735e09121a9a4d20161cf9c6f6b9ada0aa433c71c33d2ecd22318", "i686-unknown-linux-musl-0.9.4": "b1c8d20e12ed41abc38e46f66b397ea6bdcdd59ecae801e81e93eaa239c9f53c", "powerpc64-unknown-linux-gnu-0.9.4": "e8a89325ae24e42d0c73780bdf448f25871d3657e9df31aa9547e8c2720e45b9", "powerpc64le-unknown-linux-gnu-0.9.4": "f361098f627e1f920b855bd2e709f420c5f107619f8c8533347ae6ad3e43128d", "s390x-unknown-linux-gnu-0.9.4": "a2b38dd0babe9af97977e49db895a8ee89bd3ea54d27e28e47d5c7e0f93a32c2", "x86_64-apple-darwin-0.9.4": "7abe5ec80ae556fcf445be65825a340df32a8404a28332a988cb97dc65fe60c4", "x86_64-pc-windows-msvc-0.9.4": "45f4b700e864520fdc051b0631df4f07a2f65bcdf51fc01ee07769fd8257d092", "x86_64-unknown-linux-gnu-0.9.4": "c55b088472c2c6a030bf29f414c6e38028145a32b3c3da2036347f0fc9de6360", "x86_64-unknown-linux-musl-0.9.4": "c49af645ed618e660c64cd253892039ff30645e1f1563bc7842918f7cd74d596", "aarch64-apple-darwin-0.9.3": "4dccd7ca0def1bdf45acac18cf5f1d1cda0cfd6b039a6db1e87a93fdd10ed530", "aarch64-pc-windows-msvc-0.9.3": "3ead3099e552d60f3e85a41fb649c703a5825c22e08ad97261f5a89162463604", "aarch64-unknown-linux-gnu-0.9.3": "4de4579604254281758231b5146a5aaa8b24cd7e8be8af66f5aa123efa0f6f49", "aarch64-unknown-linux-musl-0.9.3": "77b92ae0497342b6056cfbdb93f4e522b26f28b13fd828e24c7e146eb5b92ee1", "arm-unknown-linux-musleabihf-0.9.3": "cdbd37452826930a73c2e453fc7ead25b3180871f9d52c718bc8a4e7ea7bcdb1", "armv7-unknown-linux-gnueabihf-0.9.3": "0b3c8beb58b72f06bdc9b87ecc746b44b25e548575a2ddd1b7eb8f35d91eff98", "armv7-unknown-linux-musleabihf-0.9.3": "9fcc1eb4da75d0f64f094c3413980118ffe56c97803566634f5ddfd266f7f45c", "i686-pc-windows-msvc-0.9.3": "a7a8078d1f1f80d803e009dfa295ecd7445b630aa9fbcbb14fbddffd9cdeadd2", "i686-unknown-linux-gnu-0.9.3": "d686e9938a4af8a58b0003ae076e9de3677042af0d7e22e80fa90777a60b4b98", "i686-unknown-linux-musl-0.9.3": "87e773939129fde85569e08e92980115548fd74069d31b5bfea97e6e2cb7ec4b", "powerpc64-unknown-linux-gnu-0.9.3": "e599a22959b1aa39b2ac33b38fdd81753c0342ea4c3ffbcc0631a9d2778823cb", "powerpc64le-unknown-linux-gnu-0.9.3": "d030c0402e6c63ad0777000692b035d96070b628c31ac662f44c1cedda4ed1ab", "s390x-unknown-linux-gnu-0.9.3": "2364f7e39d81401198798b430184ac71ba09982017939db6228927be17955572", "x86_64-apple-darwin-0.9.3": "48e29e36e0197a81d74aeb7fa8d0b0f789378879e8ba3cf4ce855610b0f0f05a", "x86_64-pc-windows-msvc-0.9.3": "60e67f1b9373d5da71af5f9863acf28429367b296665935f2c2b9f8a2b260a92", "x86_64-unknown-linux-gnu-0.9.3": "2d6101d78d3321ec2d7891a846caa809fc124b3b791a69160f28d6ba730a36bf", "x86_64-unknown-linux-musl-0.9.3": "9928cbbd34e644611479a47a905c35b7132f457669223528a077d277279fe22d", "aarch64-apple-darwin-0.9.2": "1ff7226ebc7bf2ead7426c14aad72c13090836d4938ad28c9fc3472dc930a887", "aarch64-pc-windows-msvc-0.9.2": "5bed70eea1b95e0aaea3839e7c95cc90037e9e42aa3af7db04536c1ac972b08f", "aarch64-unknown-linux-gnu-0.9.2": "ce155623f59209e04ee5874631421684a22673894af2f4138848fa3fc1da85f2", "aarch64-unknown-linux-musl-0.9.2": "462b632287b54003a426e19220f53afe9595eabae935949adb9574fe53363b41", "arm-unknown-linux-musleabihf-0.9.2": "80c5819587e21d6e4643bf109b1c12b97a6a9d54a86401c49358ef953e97fddb", "armv7-unknown-linux-gnueabihf-0.9.2": "733284809b6d135218303aab792c73a8b5628e337b78fb469a105eea9de115db", "armv7-unknown-linux-musleabihf-0.9.2": "18374ba7e07ee9df004e9ec5ae459600d8a736b46353bc815b2eeab4425352f5", "i686-pc-windows-msvc-0.9.2": "f310eee069cc922b0f18b00cac907114535d72c759ee0dbd221682e11769978c", "i686-unknown-linux-gnu-0.9.2": "e594560132cbc5d450a6749c5fb97116833796f84f85ff6e3d672440763e3a6b", "i686-unknown-linux-musl-0.9.2": "c8930bd3e414b388a92b6a9d66806bd745c99804c0c099bb257e441f1fc7d208", "powerpc64-unknown-linux-gnu-0.9.2": "2ad778fd6b8d3eccecae77538562ed524d4c1591f1730c89e019a08d799869c2", "powerpc64le-unknown-linux-gnu-0.9.2": "5bbcbd265390f556c10916fa02761d4fe1bba1b49ec5dbc7eaaca3d3fa7c935c", "s390x-unknown-linux-gnu-0.9.2": "761dcd1a3c09d6d8589a30b5457fab8ea9d06fad27add82efd7b34d3feffc280", "x86_64-apple-darwin-0.9.2": "01cbdfddf2eac74087f7fa717911418d27f65d98bb8b6ba2c36ce26e98417306", "x86_64-pc-windows-msvc-0.9.2": "77d4124dc2ab70a9e1e30114c2028f04618dc78be948b4f6e00a1256c4f349ac", "x86_64-unknown-linux-gnu-0.9.2": "ac3758b8b8970af4cbb311ce5095d0b5e42df688d45a1a703639b8fc9dac48fe", "x86_64-unknown-linux-musl-0.9.2": "bbe622067d5b915cc476b693520caaff55f6ba9c8ca700e1f03bfd5b43647d31", "aarch64-apple-darwin-0.9.1": "fedcadac96deda2ed1a1ebe10985c9489e97768164e15a2f473830d97c760745", "aarch64-pc-windows-msvc-0.9.1": "e31578352732bd493497a0472d28cf9e90ff7d3c689fe3a6dbf44a1a785e42ff", "aarch64-unknown-linux-gnu-0.9.1": "470ee4dd634f7a5fab41489b0709e9e278f58da3fa4fd5541cd8ba9d662c4e4f", "aarch64-unknown-linux-musl-0.9.1": "5b005a537644221d595f90475804954f85096aeaf049a7825b845d4c7e46c879", "arm-unknown-linux-musleabihf-0.9.1": "d4ccfa086cf9cdad89956cc57a32488aca09556ae549ddfe63e269e0f1571099", "armv7-unknown-linux-gnueabihf-0.9.1": "b32d7b5dd12c23da9ddc56d98a913ae52419fd34e2c89e8796cc7ef6cd57168a", "armv7-unknown-linux-musleabihf-0.9.1": "adf85ba14bc3351c77b9275a43326ea0986fb847cf1cb37609453481c5307f52", "i686-pc-windows-msvc-0.9.1": "ab90abd4f5f697d0c97f09565f01f5483a2075b6e36104d8dce83957f9c319b5", "i686-unknown-linux-gnu-0.9.1": "99b0c4341bfc7c522533dde54a0c97bc658c6346b991aa4dd0c478489c741840", "i686-unknown-linux-musl-0.9.1": "4145d3b167e5760f3a556064c89f494903d3ffd1e8e926360f81f00d1b2a5af2", "powerpc64-unknown-linux-gnu-0.9.1": "b5dbc69db0d28216319452b43d0ff843b5df6f6a75ea10cb49469f269c168677", "powerpc64le-unknown-linux-gnu-0.9.1": "55abd96d5f5c8169b4b97b116d7085e8fa3285514b5522aa49f0849ddcae3c0a", "s390x-unknown-linux-gnu-0.9.1": "fa6afa859d7a917330442cc27171fd034e8e8d407219d08e6a5f2350feacf537", "x86_64-apple-darwin-0.9.1": "a713c37e1fbbdcfdec9c7736a156f0b0684f34762398c2e936d2d3d51c3a0ece", "x86_64-pc-windows-msvc-0.9.1": "7da670a27b595c715c315e99d8a96b82fc97dbccc99e10677d33757195554c10", "x86_64-unknown-linux-gnu-0.9.1": "a7ae6cbe30bd48da1cbf6430ebea2de10bae00d76969c5a8eb8ad6eb8cec1c1c", "x86_64-unknown-linux-musl-0.9.1": "30274fd101b608860fccc5635a46fa66585fc9471f127c0fa7332cf367385598", "aarch64-apple-darwin-0.9.0": "8d29aeef301e7632ead317c95fbb1565457375992b373e9d40d2e81d89e2172a", "aarch64-pc-windows-msvc-0.9.0": "0a027f0966de7a2fedef4c0b5c21d0e78a4711d3a4f8c413b643c564315db42d", "aarch64-unknown-linux-gnu-0.9.0": "63f78452c4103df4a84c32c46336128f056c23f1e4aec50572f348aa8dd3b7f6", "aarch64-unknown-linux-musl-0.9.0": "0f69102c44a305054bc97f818479daa043f20ae9efa90bbfc5cbc9db36789689", "arm-unknown-linux-musleabihf-0.9.0": "24407a3aac9b579ede33d8e982d707741316c1bedc12066c7383ec200cb7c6fa", "armv7-unknown-linux-gnueabihf-0.9.0": "35a46997737e945f4150d6238406c8a21996a4ed880e996a199c38e1c0c3095a", "armv7-unknown-linux-musleabihf-0.9.0": "f5ac5f2b45a94b30f302bcd806a00e00a023b2cd267798eb672dce44cd4ec8da", "i686-pc-windows-msvc-0.9.0": "7ab0393909605bedb8db948366dbe811a9568f4a0b7fb7df109829f81530a18e", "i686-unknown-linux-gnu-0.9.0": "2fffc9b6cb0d9725c3aa6535c39a6b97a94f360dbf7970aed4b68cf0eca11509", "i686-unknown-linux-musl-0.9.0": "05fd6d15a0eb6dd06aea6ce9f69b316eebf13f161068896c51ddf836a0bc0515", "powerpc64-unknown-linux-gnu-0.9.0": "357ba64467776fa305638de0666344ff96094ed27aad9d587c55897070b99501", "powerpc64le-unknown-linux-gnu-0.9.0": "1b2ac0fba624eceeb8ed984c8bb32cbaea81bdd46c0292ab08bf30da8c19ecce", "s390x-unknown-linux-gnu-0.9.0": "3f1a17968f58a567bf525058245b657751331bcb8e1bb817e3b4083083bb2db6", "x86_64-apple-darwin-0.9.0": "6e2af7e3efb5c353500d0b9bd003dfc08824a998a77ef6e734fd0046c3f1ef75", "x86_64-pc-windows-msvc-0.9.0": "3e9db77d8f91977f8f00fbce61a2a5f3cd747ceaf24aee03309d114233fe8fbf", "x86_64-unknown-linux-gnu-0.9.0": "91470718f191157b9ba203fa1e1107d4e921350c4da0cd128713c8af1b2222f4", "x86_64-unknown-linux-musl-0.9.0": "d5cc1131c575e0ca9462c72346dea21c10cdf3cb9b664bfc72c8b5f2d48f1a01", "aarch64-apple-darwin-0.8.6": "d24cfe247de2bfd90d7f0604196247b680e1db5b6c8427cf6e540c38044526f7", "aarch64-pc-windows-msvc-0.8.6": "1b1a9cc718c59e7c2a9fd471ba39b7eed7730094b7d8ecdc554bbb66f53715d0", "aarch64-unknown-linux-gnu-0.8.6": "110b9d3fd081d1ac37cb0e4cebad1103c10989c21ff83c587682da308febb5e8", "aarch64-unknown-linux-musl-0.8.6": "23c5d1dd7eed23d2bd6d340df05a068030e267db28150892a72e3dc97b175164", "arm-unknown-linux-musleabihf-0.8.6": "5cece038a35e89f5000e93fe45fbc2d1e66b385859fa902f621c812663bf6743", "armv7-unknown-linux-gnueabihf-0.8.6": "878d1febd822efb423296a228c63083e5858111682772f5f251537b64013e302", "armv7-unknown-linux-musleabihf-0.8.6": "2263e81d447fa787b9375acf580807365c81154a1232b05f22325106614309d1", "i686-pc-windows-msvc-0.8.6": "00f6a747a5fb29d604e8921ee2564523e93f1e85522d9e347af703220a596a1e", "i686-unknown-linux-gnu-0.8.6": "3e00cf6bc53a40de6e34c223c21753b2b1590a690925536b0ba7b382664a140f", "i686-unknown-linux-musl-0.8.6": "108e35e89386fbb32698abcdec8ff734a79908a34c29d70e2604f3a7c0efc2de", "powerpc64-unknown-linux-gnu-0.8.6": "573855774fdce775ff843583e7090c44782eb385381831ac4d7fdea0e7d69d30", "powerpc64le-unknown-linux-gnu-0.8.6": "0d5d3334c7a6f5fa5aeb88a391495fd4a33090656d7069e03cf5062e8304ac55", "s390x-unknown-linux-gnu-0.8.6": "5e92c81b6fe4a1288bcbc1657aae706a0612d428a1d9876f76b81a9bef5e7ae7", "x86_64-apple-darwin-0.8.6": "3ff48d180472a1aee6385ba43606ba6a5a6ab89f16a3ca8ccb234966fe3698c1", "x86_64-pc-windows-msvc-0.8.6": "4ca646f3659a88eb64b73bcfd4a4927c0194005c5aff69f4c71406d4370360c2", "x86_64-unknown-linux-gnu-0.8.6": "1baca186d3525656c4e8e387bff990fc25af63642e22a0af04f45288b9d566e7", "x86_64-unknown-linux-musl-0.8.6": "a691c78f045f7202b15620939c4b087f301afe884e42d09a19725f61581aa887", "aarch64-apple-darwin-0.8.5": "36043a503192fd0c4c37b3f4b9f4d4351a6a3b1734120f0c780b4b8dc4ebea4a", "aarch64-pc-windows-msvc-0.8.5": "07098d8f1f9816b2b23489414e4f1c441606986d14b3b9e7a915ffd4786679ed", "aarch64-unknown-linux-gnu-0.8.5": "c858454b7cd90450e4a00c83ebe9523f2baf1cafe24f527c288f70acf8de9ade", "aarch64-unknown-linux-musl-0.8.5": "120a34b83b45374466914d2a5836f68c31dc99f04f490816a5a16e72ce4879fb", "arm-unknown-linux-musleabihf-0.8.5": "81c263084e823262e047736f48452bdd0554c0d5a2acf320be27a77914d5cbaa", "armv7-unknown-linux-gnueabihf-0.8.5": "20154c987c5180baf42d56405a49b3b3b77c5fa532e454ccb206d189c0710456", "armv7-unknown-linux-musleabihf-0.8.5": "dc77ba378a5fd7636db5e02315b45e0cf11db7dd489028761b00da1167955a35", "i686-pc-windows-msvc-0.8.5": "d6b2a77f74dff14b38279d53e8faf6abd3c1495c26c4f36ecaf633429356c122", "i686-unknown-linux-gnu-0.8.5": "c3533505401746c061f7b9275a4657de89e16ed69ad3f87168297a1c9908e3d1", "i686-unknown-linux-musl-0.8.5": "8dd61925815987d8de68528d361beaa24a8942e895cea30a10e0fd6aa798b61a", "powerpc64-unknown-linux-gnu-0.8.5": "ceee3b726807d75ac38c8f3ce0484cb9fb516b7f9c1aa90f89704a7db91aceb6", "powerpc64le-unknown-linux-gnu-0.8.5": "36be86db6653b5cc903deb342dd63fab695b1e16218a64597a1bb1ee85eeb63c", "s390x-unknown-linux-gnu-0.8.5": "5911cbab251b455ae1c0163300fa921cf95210d1a220862d4fafb3ee3b1d15ca", "x86_64-apple-darwin-0.8.5": "04ac1eaa178ba358bfd4d31926cdf588f1bee2c6a2085d220ff20ad15f8c117f", "x86_64-pc-windows-msvc-0.8.5": "3cbe83e67640f080f8fee0daa47929c5f88c89af6e0b50a69339051629a593c0", "x86_64-unknown-linux-gnu-0.8.5": "74de1995e95438427f7a2b0402263fbfd1868827004b314b50ab720c324c20c0", "x86_64-unknown-linux-musl-0.8.5": "187b47984ab559a5ad0a1d3401c37fd1afa8c3816ef21cc073240b64026f0c85", "aarch64-apple-darwin-0.8.4": "8893f3ede33a73740f69b10ee9356e5cf2933c0afe146f00176be12ef91bf9d9", "aarch64-pc-windows-msvc-0.8.4": "09a6f59fd0407d4d183821c199f4d65de06f2fdd46a8b5dec2dcebb704ef442b", "aarch64-unknown-linux-gnu-0.8.4": "0dfe36fabb817638863375e0140ce03bf26ccc9a7fd9d2c8e8337b1a21697ed4", "aarch64-unknown-linux-musl-0.8.4": "c497a751d87c09d0e0185bd4c9f221b35003dbc5611c46df00b55e48e6b8fdd5", "arm-unknown-linux-musleabihf-0.8.4": "ba28a3f397f5e71d0395c248cda7a9fd5561d5b815390837eea2372ae83ef36c", "armv7-unknown-linux-gnueabihf-0.8.4": "8e3bf4b4e44b808e42596a360e58da9fc6ebdbe7127ad1721da1bc9f062f65d3", "armv7-unknown-linux-musleabihf-0.8.4": "50ab927866961307c353cb96ca1053abc718379eb368a4402b367a4fa1a91ccc", "i686-pc-windows-msvc-0.8.4": "cb944992cd4847a6ea0dc7c57230a6c7b40acdf64b0d09773f27ba0a65802c8b", "i686-unknown-linux-gnu-0.8.4": "bd46b0fbb90bcab70924f756c17a1cf2cba30e05122d7553e9f33cb8ed41cd14", "i686-unknown-linux-musl-0.8.4": "4c8317b1fdb7dcb17a3cbd7975180914047e4b6596d9acd6f0fb39ee53c98ff2", "powerpc64-unknown-linux-gnu-0.8.4": "c5e99c5703989a16be4217caa67dbc1a358e9dbd8ad806e9cb96cbf070d57f0a", "powerpc64le-unknown-linux-gnu-0.8.4": "42abb3ebc87b0317a91a3622f94f5383c1afe9c40876c50a997a873cef43241d", "s390x-unknown-linux-gnu-0.8.4": "255510d803b11042aadd6b07f8f7e724a7544f357bfbd3b4cdd855861d74d762", "x86_64-apple-darwin-0.8.4": "b47e45fe5bf128eaaeaf9f477388934586d00c2c16469034c770d93ceb655a16", "x86_64-pc-windows-msvc-0.8.4": "9a1ae43ede1dabf08678060c6e6ccccf11b11e13341615c4dfa6f854e311b102", "x86_64-unknown-linux-gnu-0.8.4": "c4e6591ae1bb4f15c09c9022b7bfc57e1c3a567acdc9cd76021cd1304b5868c3", "x86_64-unknown-linux-musl-0.8.4": "6c95a04d3c589dac62adc1538c72e5cc100031da04b9bfec639a195cf8dbb017", "aarch64-apple-darwin-0.8.3": "b99da0f689b01d5b556fe2f66a756c99fe85b78cebd19f73817de7315438d53e", "aarch64-pc-windows-msvc-0.8.3": "16f543b6ac7765c3f91a8f6b24e49f42dc98e710ccb61b7800f7d21fe9026a14", "aarch64-unknown-linux-gnu-0.8.3": "e8fd209006dc6be4066eb1730371aa2bba0216471a7fddb57aaf07562dcf7283", "aarch64-unknown-linux-musl-0.8.3": "a9978f88e3e5e1c2789f93cc1f264cf8981f7a4b6969ea8dd7e630c5c46e3972", "arm-unknown-linux-musleabihf-0.8.3": "21094f80f0f71025da293fb190468e47e38a55bb2c8595f239ddd6ce5c4718e1", "armv7-unknown-linux-gnueabihf-0.8.3": "2594d44751d87af208f363113af7fe7b3d706da0edcb421a00816f1a0099c962", "armv7-unknown-linux-musleabihf-0.8.3": "56be377ab0f6136ff50a52e5c37377d16b07ff3a037f3310fbbd9efe53e691f6", "i686-pc-windows-msvc-0.8.3": "165e7187594046d20f7d2863e78748bc75f3c3692493c4511bcb2662a8d6e765", "i686-unknown-linux-gnu-0.8.3": "653a54ddfa27cc5dd172043278f624b6b5af58f27e82a18c66e6874ebf30caf5", "i686-unknown-linux-musl-0.8.3": "a0363f6e917d4494473307313403241cde2fd1a9ef43a9a3f47156b9be64b88d", "powerpc64-unknown-linux-gnu-0.8.3": "9ef2a28502dd4212c3fcd47bf8db22b5348737290f598275b59562de42a8dcb0", "powerpc64le-unknown-linux-gnu-0.8.3": "490eff7f0e16cb7ab026364c80a4b38ce713b305d7441170ece4ac88b25d19f9", "s390x-unknown-linux-gnu-0.8.3": "508927e86a819822ba7aa8eed647a18c38e570c512a9ad61f1c218e336a9d7d7", "x86_64-apple-darwin-0.8.3": "92b471249c6c7341ebfc75719620e7d1b01ef70a8ffe1309549e98b57d4d9850", "x86_64-pc-windows-msvc-0.8.3": "297b8b1c8a888cadd12ca6baf4af115cc65890ccee75d51ca4057000cb0f4c3a", "x86_64-unknown-linux-gnu-0.8.3": "19eb5ce0cf1151d5ef58372633c342e1c000f4bfa8877b3d4ba0f0191b4bf839", "x86_64-unknown-linux-musl-0.8.3": "14c104c0d862b0419766136f616973cedd549b33863f480b5b6dcd6fcc75747b", "aarch64-apple-darwin-0.8.2": "e261948e088a92959b4d8815b04b331609c8160d93b22308a80070a18bf984dd", "aarch64-pc-windows-msvc-0.8.2": "547b3ff302b124023e025d7cf662e8b818740432338c7e2b5c990edc3dbeeb6d", "aarch64-unknown-linux-gnu-0.8.2": "fb82155967c658b871706ff928ac8c2150db36c8c5304e70c101d849b50b42cd", "aarch64-unknown-linux-musl-0.8.2": "a4e7eec392741d1f43bdf8ce947497344e5d56af64dcd3dfce8586834ddfcb86", "arm-unknown-linux-musleabihf-0.8.2": "4334688da6c51d622fe9a4d34b90be7507a5a11b7e2ea616e39a48d9a315c495", "armv7-unknown-linux-gnueabihf-0.8.2": "1f066d2e55deb227096a53d92b58991355bf522f30a6403973ccd2daa38aa394", "armv7-unknown-linux-musleabihf-0.8.2": "6316f026cc3cde815c5bae24b0ef0483be6ad3ec7bd1508780205251bce309e4", "i686-pc-windows-msvc-0.8.2": "cb031edcace8297046c1fa0eba4eb37982c1b18f5f744ad1fbcb3271e6d845e8", "i686-unknown-linux-gnu-0.8.2": "c79c8576e5119b30018ffc553a8836de704e08c4203480aa8da760497d89b1dd", "i686-unknown-linux-musl-0.8.2": "02613f37e1289b599063f8215820a67cae0e9be4a4ea1beb6df1207fe14eea0f", "powerpc64-unknown-linux-gnu-0.8.2": "fe1ab21a4f0215a5bc0c2e16ee441594882cbb3c7541996cd03e7c95579c6816", "powerpc64le-unknown-linux-gnu-0.8.2": "431e6d1c966c2390112cb4822b1dcaf4a09f16597d12784de6cfb148953904e6", "s390x-unknown-linux-gnu-0.8.2": "949705a2abef4559a85c8927f8c5a02ebd402de3fbd20872a93bb5b162386c8a", "x86_64-apple-darwin-0.8.2": "07e9559eda46d02ba3c09fa0ea78cc15b9bbb10408f47b61d524d13b407eab0c", "x86_64-pc-windows-msvc-0.8.2": "4ee1f8373e7f7c1be42d51b642d576cfea068584c5c8ee7086f502f0d3a2f483", "x86_64-unknown-linux-gnu-0.8.2": "b0e54de8d1d384fa9f9e1edf939ac63dcc72ba9ea7c001352510bc5fcc450386", "x86_64-unknown-linux-musl-0.8.2": "aebe16a7975ff8f477a2790ae49fd01ae34061ffbae3078121620f91fac0506a", "aarch64-apple-darwin-0.8.1": "19408d81732451fa9eca5bb58f52ab3544a3c4c894f87dbd16265f1eaa542038", "aarch64-pc-windows-msvc-0.8.1": "18823e9728c09c09347bdcb8bf56eee117476e19248fce0bf9553f1510244a23", "aarch64-unknown-linux-gnu-0.8.1": "05ca640a800b2ebcb3a60dab20ccdc4485d41a79261243cf44dda551a7ec59f9", "aarch64-unknown-linux-musl-0.8.1": "a443c2383551c087972be060109971daeb5fedff62e7bd0b9f403f8a0d10ea5c", "arm-unknown-linux-musleabihf-0.8.1": "e6eda932f691813b7d2ac6c558c2e3be378d0ce2b87b218b22b5f70a73750067", "armv7-unknown-linux-gnueabihf-0.8.1": "e9ff9fb2b9f81ee2289cf187a88d653cbccefbc489ae78f085799c1aba621bd9", "armv7-unknown-linux-musleabihf-0.8.1": "04fcb9fb935f1eb328a0bbad611e08683476a73bf26cd2e4f88fd63b4c8728e4", "i686-pc-windows-msvc-0.8.1": "d9d062c0266e3eebf2aa32633600561465d54e2612cb4e5986a990f5968cdacf", "i686-unknown-linux-gnu-0.8.1": "a7cde3a634f1c304cb9208951a6fc72c08b5dc72815f2f0e5d4a5b719f6b2480", "i686-unknown-linux-musl-0.8.1": "c2a16b066541aa53dbab7493ff4c7ab11fa41a33bbb6a27b8d4c6554c1725c69", "powerpc64-unknown-linux-gnu-0.8.1": "759992752f5427fd230c8cc3c7b622b247eade44c85b2f2642220335eabb6cd2", "powerpc64le-unknown-linux-gnu-0.8.1": "a5e407808592da5cfbd96c42c45270914aef37a316e4fb3cd8b0f05b7e3453fc", "s390x-unknown-linux-gnu-0.8.1": "144c57540a1c8b812d0bb9aefc177d8ecb6ef16a173eb7305cee2318f4c370a6", "x86_64-apple-darwin-0.8.1": "29e5c09a23dd1750f903c29a3ef36ea12527b0035983940eccbb738c2bc914b1", "x86_64-pc-windows-msvc-0.8.1": "ba096b22fec82e5fffff9bf76a7a75d617586c4d03ef2d13eb047882c532427a", "x86_64-unknown-linux-gnu-0.8.1": "27942bb3688c2382603b89e7772fcd6df4456eaa1ae2eb93f3f3bb82967d8b00", "x86_64-unknown-linux-musl-0.8.1": "d03f855ddfacfbddea476c2838d284c316aa97ec141355c69553db2401afd682", "aarch64-apple-darwin-0.8.0": "eede1dc7e7bf14ceef1b2ef7274cf74b5aa4939f8299ef5b42dc72f25fd4513c", "aarch64-pc-windows-msvc-0.8.0": "cd9d99c402fa10ba1c19e490379d69e97867058251aadcd9b968e62cd5369a45", "aarch64-unknown-linux-gnu-0.8.0": "9e130c1c539904e63d186e2f15d08edb61ee38bea04c7a39d2d13eda5b51c66b", "aarch64-unknown-linux-musl-0.8.0": "ad518c013fdc6dad80c8d0440c95afb3653d70adf6eeba1b27021fbf3c39cd56", "arm-unknown-linux-musleabihf-0.8.0": "d1b2670a8544fe94b2bb7f351645ae907945fb776c0b9bfff8b120de3a1f9949", "armv7-unknown-linux-gnueabihf-0.8.0": "79e7a37bf3f70c7ece9253b43f9ce466fbd224488213e40b7a935579a6644780", "armv7-unknown-linux-musleabihf-0.8.0": "02fd57e3e1351409bacde448c0c38312c127c0dcbb485e54accaa4fd64da205f", "i686-pc-windows-msvc-0.8.0": "7313d797f2093e096418f814a9537fb1d34e5e74c2b4ac294a84346b5261069a", "i686-unknown-linux-gnu-0.8.0": "c144b5aa8cde4fe261bdb8d975bdc04391c79833f7b55aa286d5809d577d6f2b", "i686-unknown-linux-musl-0.8.0": "7a2cbc83795debfcd59aae7e47ef5fb025bf0718fb90f52c7a72ec988a813c90", "powerpc64-unknown-linux-gnu-0.8.0": "d51e358dd1e31fb8213b1eeea1d861305a954a156e76492ee657f6b8fc01205b", "powerpc64le-unknown-linux-gnu-0.8.0": "0051e542308b9e30ae9d1ed5004129a6401c74569decd8c46c3c3f00d978fcd7", "s390x-unknown-linux-gnu-0.8.0": "ef5a2247c039d5fd7aa839298a71be1044e3b0c7f829aefe28fd0f6d33b73330", "x86_64-apple-darwin-0.8.0": "8c5b868d1aefd277b360d16d5d05a5498a184cfbae41ec3441fef6abf89ea449", "x86_64-pc-windows-msvc-0.8.0": "be33493b13911e7add147752d680d7f31501475b1758e714d731403accd9479f", "x86_64-unknown-linux-gnu-0.8.0": "1a75f25b4ebe4a0fa721dddafa37c570714bc48eebcfcd6747b4ccc5ddfc13ed", "x86_64-unknown-linux-musl-0.8.0": "4f5d4e906480906c53bb2906a3761b3a172cef8458d08b81f34156c3d99d125d", "aarch64-apple-darwin-0.7.4": "af9583bff12afbca5d5670334e0187dd60c4d91bc71317d1b2dde70cb1200ba9", "aarch64-pc-windows-msvc-0.7.4": "1d9080512657669c3904bf9d779140f90ca1f5d0e2ffa3bc8c0042b1da73dda3", "aarch64-unknown-linux-gnu-0.7.4": "8c206e4e36b5e60068080c5b7018de23c7a6edb2f037fd69b7a474dd08b4a3cb", "aarch64-unknown-linux-musl-0.7.4": "329ddf6bb4f34fbcba273ecb1460280aa2ad92150a94f58110861b3c4453ce35", "arm-unknown-linux-musleabihf-0.7.4": "56775da78dabc65594228f260de6d522cb57d17b7361d24bc9314868e2b882d9", "armv7-unknown-linux-gnueabihf-0.7.4": "9ecf8bac454f3f5be9b1c48d281e7565231994bad74b10424a64dc48243eed0b", "armv7-unknown-linux-musleabihf-0.7.4": "f60a2e082d4858c8f1fe6f7ebe8d8933bd8f2e3cf9e1274dffb4cb568338e23b", "i686-pc-windows-msvc-0.7.4": "8952479328ddb7f89812a5f560a34c4a2e675cf72127a1ed86e631f5ccc845f0", "i686-unknown-linux-gnu-0.7.4": "7fcd2c9c3375bc73481fa1f97fbc9ef0a691a554950ace068d7b49255b584768", "i686-unknown-linux-musl-0.7.4": "ffadc76413fc957aed2e2caf5a8cb04f899bdd44edf3277d28bb149805fb6a8b", "powerpc64-unknown-linux-gnu-0.7.4": "6f3ca164c74cd08f5889d40c59f2b41778fe830aafc592c30049f0e3a72c7102", "powerpc64le-unknown-linux-gnu-0.7.4": "de63fb82efe2f233775a5db8dfb3bb0138830e2228ba4219ce5e8aaaec7cf83a", "s390x-unknown-linux-gnu-0.7.4": "f63525e414b6da261b113337cf7d837e08ce542a29bac73fd910384e3e6916fa", "x86_64-apple-darwin-0.7.4": "9762afafafacd801eb95a086dcd3359075ab5cc4cd1371b7ff0550c44ac4e47c", "x86_64-pc-windows-msvc-0.7.4": "d6c1c7ecfcce022f87a172ed8586f068f616e9844d6ee5d2527dfcfb7348f45c", "x86_64-unknown-linux-gnu-0.7.4": "0de731c669b9ece77e799ac3f4a160c30849752714d9775c94cc4cfaf326860c", "x86_64-unknown-linux-musl-0.7.4": "38ff38639f33764acf2cf3c3252e2a214b7f5fedafa67c50909926297dba9229", "aarch64-apple-darwin-0.7.3": "c149e86ffe69af6d8a121e750fe360c3fdcc643b3d73640d852413f9eea534eb", "aarch64-pc-windows-msvc-0.7.3": "6cdbdab6b95b7b9988e8f47a602ed1ab7fd1a5fa34f2269d99dabf548962a952", "aarch64-unknown-linux-gnu-0.7.3": "27ae5ce15b6ffc7144ca045f2fbb0c2c7d8ebbc464941909add1c80e30c81cd4", "aarch64-unknown-linux-musl-0.7.3": "08693fa7ac25c757e212b3d94aaa9d7c0938dc8b4f841928e5550b9cfb24bbc4", "arm-unknown-linux-musleabihf-0.7.3": "e5e859fd5b9d61d83820a63e3561f9eb90431cef6507b491c0f878d54f28b600", "armv7-unknown-linux-gnueabihf-0.7.3": "f7aea6fadceaa72bec6a1779d02cc8981aa45ded0f2d7d0fb0e74ac92a628d17", "armv7-unknown-linux-musleabihf-0.7.3": "060b2cad26f7963795144156b5dddfcd42e2a8aebfcbb102aa5a2da10b08e9f5", "i686-pc-windows-msvc-0.7.3": "fa73be28444e60bde0d13853443e69ec941567eb4a99c1e28bf57ef94406a7cf", "i686-unknown-linux-gnu-0.7.3": "59e5e7fbd5a9d700c7e8d89462e8e918368448fce51c9443c96c13d8455377cf", "i686-unknown-linux-musl-0.7.3": "8bef57eac2e1ea7e431ee6853a54928ea770d31169756be71ee6f107575803f3", "powerpc64-unknown-linux-gnu-0.7.3": "f5ce445480834c2763334b49b38b5cddcea12da434b582862e7f773b12577e11", "powerpc64le-unknown-linux-gnu-0.7.3": "1db557816f1ba933ba4758b55293823f4c78ed2d6b9a243a8d7ebb965c212c31", "s390x-unknown-linux-gnu-0.7.3": "4c80f6f1ac116f3c690fd2ccdfbf0bbfe512ad6e7f28f7d11022adb10e324ece", "x86_64-apple-darwin-0.7.3": "ea2d718132b50bd24cd285d5d823ba9b947b258cfad102f6a649a6fe556069e1", "x86_64-pc-windows-msvc-0.7.3": "203a6fdb3895de9d0ad5e81d2f8b76a87dfdf94cff5e2749ce25139086c215d5", "x86_64-unknown-linux-gnu-0.7.3": "5b981249c544eae0d55dc066c0f46a42b479725cc9495c544dee052051302f67", "x86_64-unknown-linux-musl-0.7.3": "131ea11c6f7e6788b7296d8d86edcbb26f359017512e032a9177d40e8352a3f3", "aarch64-apple-darwin-0.7.2": "1c9f5a4fc815330d01fd8a56a7a70114ff3ed149bd997ff831524313705ba991", "aarch64-pc-windows-msvc-0.7.2": "b6d9616e6e621c3724ecd157d1fa6e326cc0c171e0efe59a8b854e4a082448b8", "aarch64-unknown-linux-gnu-0.7.2": "f42e875906ac1288159b91dce8ee8e85437c18c13248b96f2e7dd50b97056abc", "aarch64-unknown-linux-musl-0.7.2": "f9342fcca6b58143f316ef3e617f39334edb4c3d15fced5220bd939685f6261d", "arm-unknown-linux-musleabihf-0.7.2": "c6f619eacb5de1818f54c2e24c22cbe191eccb768b2e167cb4cabb1b85411088", "armv7-unknown-linux-gnueabihf-0.7.2": "caa7b44e2d2f03caa81985f6e90a36bd3f94ac23fd3d97341db81a2909632be0", "armv7-unknown-linux-musleabihf-0.7.2": "2ab5e5dad867bfb4a9b74785ec7e1cd2713c49b211ca7d9f73276278ea337ac2", "i686-pc-windows-msvc-0.7.2": "d04baf358d16b6b74c196a1cc9b1d72a4b3f6b3b0c6ca59543ba94a15a8fcd5d", "i686-unknown-linux-gnu-0.7.2": "458164698775c5051a9fd4b4fa02b075b0ae68576c4518595d566224465bf266", "i686-unknown-linux-musl-0.7.2": "7473e2dcffefc8bb6efc20961c6bf7d9ec6579d4174699263c593d93df939d21", "powerpc64-unknown-linux-gnu-0.7.2": "7c457d5d3aee391467297105399065ec42ee8f87baf1c38f547d8dfa23b98a07", "powerpc64le-unknown-linux-gnu-0.7.2": "890b701a480d4b072e06808a0a6925d21a8e1bbf99498bad0209f667e90e5f61", "s390x-unknown-linux-gnu-0.7.2": "2cfcee42c6eec56d63d1550c7b3b02f533322a0198c78220cf7317bcaaa14e29", "x86_64-apple-darwin-0.7.2": "5815756947d0a7b1d90805b07ffb2c376c8a9800e9462d545839dc0d79a091d2", "x86_64-pc-windows-msvc-0.7.2": "d17fc78360a3780de1c13e94174ae098f1d55febc613e1d50bae1eb6c71dcfb5", "x86_64-unknown-linux-gnu-0.7.2": "485cf54301864e59e5f85354f01c2f34f1546c8fcaa9899e6b2bfdbb0d97d19a", "x86_64-unknown-linux-musl-0.7.2": "b769e11a3e23a72692cb97ed762ff28e48534972a8ef447fd5b0d3178a56ffd8", "aarch64-apple-darwin-0.7.1": "88fe24bad9ddf252e9cb9771a36d55357bd014acf86bac1ae2d29c72718ce513", "aarch64-pc-windows-msvc-0.7.1": "b421cb7d43ed453dc3295bb952dc753de79790fa0bd0f1580ad96776217a6e3b", "aarch64-unknown-linux-gnu-0.7.1": "6c5b61891090a2947e05088b1a1d89d0bf9977043993b2d336e73dea74a515df", "aarch64-unknown-linux-musl-0.7.1": "7f2966d709d5e070e04a3bac96a176a08643b70f53270b002e0fefaf24b94ebd", "arm-unknown-linux-musleabihf-0.7.1": "158d4e82d5fa3b42db680edc16fa1fc4980f49dc75bf70117487d2cd6395c86a", "armv7-unknown-linux-gnueabihf-0.7.1": "19f27b870e6bd0db81a40eb4dc92f3b15ab2ad947e2385535310ec15ce6f3833", "armv7-unknown-linux-musleabihf-0.7.1": "f209dd1384a984c61ed3390e90fed8a35ee7e8c51d175aa6e9deb57733dd33f8", "i686-pc-windows-msvc-0.7.1": "322022c2c7b9a9817aa6250cc466cb5c86e751dca0529943e5550b01efffb68e", "i686-unknown-linux-gnu-0.7.1": "af7457de6df274d401358f49250b9837caa03d8bd5574837026c6aa98441ee22", "i686-unknown-linux-musl-0.7.1": "0348c89105df2aa37e552b91170f13ec4bfa81ef04d599e7d891f90ede497def", "powerpc64-unknown-linux-gnu-0.7.1": "be753e1e5fad0160f5b764896e7d42a2131d1229220388f4ef9edf3f5afa664d", "powerpc64le-unknown-linux-gnu-0.7.1": "cf93ca23af971710860d5380bf7305e09a8c893791cc4dee731afa9c56e162a9", "s390x-unknown-linux-gnu-0.7.1": "7fab26d36d6b95d7113021bd6587bcc002eeadb87f7e61ade028c79160b7c9ec", "x86_64-apple-darwin-0.7.1": "708814d5572728f83c8ee3c745b24397887bdfbaca1e5f7f27c2f3ee0d65b5ab", "x86_64-pc-windows-msvc-0.7.1": "b8172c829aeb6c9952a34da16364e4dc41377ec12212fe0ee3580e32eb850623", "x86_64-unknown-linux-gnu-0.7.1": "ba8df8cd88cc74f1dbd6f05e5c0e657d64d818ff0e4e490f422ea7a64f31f35c", "x86_64-unknown-linux-musl-0.7.1": "bdcee46d56f8c11d6626179cb76421fb74da2ad60237254ccc432f6dedeb8346", "aarch64-apple-darwin-0.7.0": "8a5815e81d225107ce6be5e441d2e17c9503ddea7e01a4a11189462b533c9f31", "aarch64-pc-windows-msvc-0.7.0": "714a958732d2ae6ba73ed1d08bb51e7834064217c07ad927dfae6d6bbbeb166f", "aarch64-unknown-linux-gnu-0.7.0": "1297dac310907fed6e861f19f0171753e702cab361a17d4c29d84db5cd88801b", "aarch64-unknown-linux-musl-0.7.0": "75bbfe2713baf4ac0b4eacc5c33d466a349fbb77f0d8d10edbb2512016bb84c7", "arm-unknown-linux-musleabihf-0.7.0": "db1a24cce5c4dae0d90d4eaa7d41cbb0aba8b3cce1eb43af0a877d0f48c928aa", "armv7-unknown-linux-gnueabihf-0.7.0": "ee4b6e4a32dc8424ca4c079aa7483d309e28afb98bb13c9aace7c14a20ba324a", "armv7-unknown-linux-musleabihf-0.7.0": "101700125acffe59798f7a56aa34b7b268af4294989c06426d9d5bd06214a9b6", "i686-pc-windows-msvc-0.7.0": "e67f6d247ce810f2cefd50191fabc6a6eef44734089dc8f98e1adb41aa428c75", "i686-unknown-linux-gnu-0.7.0": "a978d284a989601022121da991b57e04e66e872e82d49f6766787fd6c81e86e4", "i686-unknown-linux-musl-0.7.0": "5a6346e05c73759a6233f697ddcbe7765c4d52480a2caaa045dbf4ac5ba56b4c", "powerpc64-unknown-linux-gnu-0.7.0": "f27de7ea30c0718aedfd61a92657095e3d01bc2cb3f1a9e44f18c0e43f5d86ab", "powerpc64le-unknown-linux-gnu-0.7.0": "4ea396f4db6712f70aee24993ff0c3f512d80f04d37d5b03644be1bb2cddd9c7", "s390x-unknown-linux-gnu-0.7.0": "6f53cd548dbb750ef147ce952cfbe4800f80054e2cfbd1cae98cc410db2ff1e6", "x86_64-apple-darwin-0.7.0": "1848e227ce7476009141fa427a5db941934349ef01ca5e2835ffd7df7b8a2761", "x86_64-pc-windows-msvc-0.7.0": "2756a7af416663a8d885282e1cbedf39ccadeeb51e8d4cb7a5e89ba44dfd170a", "x86_64-unknown-linux-gnu-0.7.0": "625728da565048405ae770c4f6308878e6ac4efd9cdad715bbd6b0b1b16ed683", "x86_64-unknown-linux-musl-0.7.0": "007c73c2ef752bb2048c8702ba62e74baf184a0fceef8eee06c4bde92a32bbe2", "aarch64-apple-darwin-0.6.9": "b94562393a4bf23f1a48521f5495a8e48de885b7c173bd7ea8206d6d09921633", "aarch64-pc-windows-msvc-0.6.9": "92a91342285bb9f51bddf4822dfd6585f8567b569e2a630b5219158a820e93df", "aarch64-unknown-linux-gnu-0.6.9": "c61828a103c4de113620b5469b9612efdcf71557dd60006f70615f33c75b2546", "aarch64-unknown-linux-musl-0.6.9": "73df3729a3381d0918e4640aac4b2653c542f74c7b7843dee8310e2c877e6f2e", "arm-unknown-linux-musleabihf-0.6.9": "ff7719f8dce0ebe95771998092a78ad5249569a17cda1cda692a4e4a62d0482c", "armv7-unknown-linux-gnueabihf-0.6.9": "d283c79c8a0d9246571a376c0f33ed698038c040260b8e82a2489082556a32e0", "armv7-unknown-linux-musleabihf-0.6.9": "5a628db3076627f6594711f1c0e2f7ac970dbeed7c43d8d26b843a8a0294eef5", "i686-pc-windows-msvc-0.6.9": "cd7ad2ae2e1717098e49187bb730e0d5799625373fcd62f3f4daf0096bb4e1dc", "i686-unknown-linux-gnu-0.6.9": "9144e8e433a441387d3b665fb06cd54fdb3502eb328e6ab8f4d21f2b4f2c1cbb", "i686-unknown-linux-musl-0.6.9": "f0984b697e946a2e018b9a6c1ac9616200b537f3dd863a8ccbb16b7e3e668baa", "powerpc64-unknown-linux-gnu-0.6.9": "346ee20f773b2c29979b0a07a26a02d5e264ec51493c0856a4b3008d2d830c41", "powerpc64le-unknown-linux-gnu-0.6.9": "6eedb853553ee52309e9519af775b3359a12227ec342404b6a033308cdd48b1b", "s390x-unknown-linux-gnu-0.6.9": "b4f93af861c1b3e1956df08e0d9f20b7e55cd7beb37c9df09b659908e920ebe6", "x86_64-apple-darwin-0.6.9": "34aa37643e30dcb81a3c0e011c3a8df552465ea7580ba92ca727a3b7c6de25d1", "x86_64-pc-windows-msvc-0.6.9": "9d10e1282c5f695b2130cf593d55e37266513fc6d497edc4a30a6ed6d8ba4067", "x86_64-unknown-linux-gnu-0.6.9": "ed8ba4cac0c6dfc1c0e9c6c720daa5ea404a3bff0497a95d6e25293a7910e903", "x86_64-unknown-linux-musl-0.6.9": "39a1cd878962ebc88322b4f6d33cae2292454563028f93a3f1f8ce58e3025b07", "aarch64-apple-darwin-0.6.8": "e554d55281391138e44b30ccd38c666388e4aeb05417c9ffb98a6cbb014aef0d", "aarch64-pc-windows-msvc-0.6.8": "68354a68684084e7239981ee47acbf707c3e99da8fa4639ac33d338c6221f6df", "aarch64-unknown-linux-gnu-0.6.8": "c8179604ae0e9b6392d83de8c623af14867df614ed0901665b0969b06f96dd0d", "aarch64-unknown-linux-musl-0.6.8": "f91da1257bb286debe73c0ee0e8033573b7ee5fcbeaea4f7ed2e2c353176f1e7", "arm-unknown-linux-musleabihf-0.6.8": "e3f473c19b604db368e6206c8095974e36d5823951d8e3d5bfbeb8231c509f3c", "armv7-unknown-linux-gnueabihf-0.6.8": "5858b85b04aec4ac6ebc2b0459498cca9f441eb17d698349e11837de30ff8a28", "armv7-unknown-linux-musleabihf-0.6.8": "4f8c99822ef79f634855ae7090189df3d504c11007740d32c7379889da1596cf", "i686-pc-windows-msvc-0.6.8": "800280360d464e959fce496e499dfa585c5a5d96ad8a86ca1a4964299ec845d0", "i686-unknown-linux-gnu-0.6.8": "32afc6a6f2fcd30b7ea5ea0bf9654a026d11e35c8d86c58cceb6d53ae6ab738f", "i686-unknown-linux-musl-0.6.8": "2deebce75e537ee95fb2df2f093992417f76a102bfce027207382fded805b1e5", "powerpc64-unknown-linux-gnu-0.6.8": "7928aa1a948a38a3c8ed04bc547ef61c9ed60ea7d96f165fc9325e30c55ae1ae", "powerpc64le-unknown-linux-gnu-0.6.8": "d2f2df77ee92acea72b8119ed4134682337a545155242e3b9c9422e0397c22a4", "s390x-unknown-linux-gnu-0.6.8": "b4b86d7fb31ea45e881e8505c56a56053cef5f1f68ae36da15e036696320d613", "x86_64-apple-darwin-0.6.8": "44039cea2aed4787cedcda0c35e5b352530d6ca2178f39c8bd4ff63526c43aef", "x86_64-pc-windows-msvc-0.6.8": "998ee76c52a963abda3f3cfb259aadeb6cb733c7dedc0813b79fc70f53e5420b", "x86_64-unknown-linux-gnu-0.6.8": "7edce7075bf6d43b1ef2a9383b76a43310bbf5d70fa4471330fd5aaf655192b0", "x86_64-unknown-linux-musl-0.6.8": "ee29f47860ee3f48f25ad550d4614e69c5c511e91f9d31f487c38492968747c4", "aarch64-apple-darwin-0.6.7": "29b1a72c35eed5b2240ff365e1f45d07bc0c40b9331a119c2b59cca44c0f322e", "aarch64-pc-windows-msvc-0.6.7": "c5b3cba584d6a81f49fa41952feccb0733c0a7fea3cc95b5f58b6ef7bc9b9008", "aarch64-unknown-linux-gnu-0.6.7": "ee705976bebce8f74f98215ad8437ae4e1e098309fa81df280569756050346e3", "aarch64-unknown-linux-musl-0.6.7": "543fc039d88ce2f9cae645869d0fe15168b1eea9f3bf196ed9d7a55ac091aacb", "arm-unknown-linux-musleabihf-0.6.7": "7cbb73bb7c3b226e72d2db9a662f0f39a7e314fca05f7e2d78455919c6c910b8", "armv7-unknown-linux-gnueabihf-0.6.7": "41973e61bb3b1292c05c7fd684478f21a1afd92cf49881513c2c0dc0ffeaf2e5", "armv7-unknown-linux-musleabihf-0.6.7": "f9599c21930d8ff5563c662317d79703356b973a0b4f026d28dc8098073ac27a", "i686-pc-windows-msvc-0.6.7": "fdace3417e0ed2215f18f62b3f7fa14e1b34ea64523ac40ce5726dc7483f483f", "i686-unknown-linux-gnu-0.6.7": "88a8dfbcb9949f5bb0e949b508fe6be7cb8d1f79b875e0173255de5e5dde642a", "i686-unknown-linux-musl-0.6.7": "c80fe8d576336308efb2e73c2983fe0e1169c487011432e2866f9b3c03809c03", "powerpc64-unknown-linux-gnu-0.6.7": "65dc1e517125af6013ce9b3e9d15dfbb5123c6ed64f822637fff6e46c377aa74", "powerpc64le-unknown-linux-gnu-0.6.7": "a4a70f9ddf364c6c99737990ee8cee706e6e286961a729c588c65f67a341e0cc", "s390x-unknown-linux-gnu-0.6.7": "042744856fb9ffba4c3018d85603d0b5b7e2cc7ce6e4fffe56281c60080eb39f", "x86_64-apple-darwin-0.6.7": "5b724bd2c95d926ea46da07dfa6ac5568637db04740838698bb4b1909d8eba0d", "x86_64-pc-windows-msvc-0.6.7": "1f6c97e24b8bc8d741ae444f853afad4542a251ca229e2eae139cc98a134b760", "x86_64-unknown-linux-gnu-0.6.7": "52ed7e34c15809f313e3f8ed4281fe523e7e5f0667e7bf9958885b7e6f2270a8", "x86_64-unknown-linux-musl-0.6.7": "3f0ce01397038ffb09e8ee19a059e8fa39204f87f08430a1877e242348d9ad64", "aarch64-apple-darwin-0.6.6": "4f6e10c538e921f324b65fd23925d973b930e59ca26c1aaa0512b84aaed00985", "aarch64-pc-windows-msvc-0.6.6": "dae68f9a8b481b6c15b67cbcb55e5b4f8f80a29b417b57ff2c05837e3bbe436c", "aarch64-unknown-linux-gnu-0.6.6": "d3218f79709f28dcf502218fb88d46d86c951f322cffe6c46084b4ac7ce878b6", "aarch64-unknown-linux-musl-0.6.6": "8f1ca0da3cf4c7657e25cab1e4acb24364a7257753391ec99dee901290bad0eb", "arm-unknown-linux-musleabihf-0.6.6": "b6f4b32b235e77f6a97f8108ef24a3e99cc6272edfd8fcdc255015d3f1325abf", "armv7-unknown-linux-gnueabihf-0.6.6": "fe65ae5abab863fa8c8d75572c59db4d5233e8f0046ac624ade110acc150d2f4", "armv7-unknown-linux-musleabihf-0.6.6": "119590c640f8093699e55fbdeb92f44caa18b18a2102c129581c5f8641e7d3ec", "i686-pc-windows-msvc-0.6.6": "7b840e5c1c437af8a4cf10f78ae0473371431284fc91ad956582f58189757f07", "i686-unknown-linux-gnu-0.6.6": "474bc72be2cf49a086f48922791b2d267835ca2fb325769483eb795eacb13583", "i686-unknown-linux-musl-0.6.6": "770c5d35339fcfcdce40085bbd99dc8fa9ea9cb9ec4bda0f621ad92a91ba8888", "powerpc64-unknown-linux-gnu-0.6.6": "12c93340987e173c360ae0dc7efc1b248c0415cc1b046566eab09cb56e60b4dd", "powerpc64le-unknown-linux-gnu-0.6.6": "a802a0bd9fec9dc7a9e4e8e71e8edb45d6db5449897eba98dba6cd51a370f9a4", "s390x-unknown-linux-gnu-0.6.6": "b5e904a7a9cf9c647132b309f9d29e1c6d0918043d040e7d1b8c1ce5f079d7fb", "x86_64-apple-darwin-0.6.6": "22aac31aeae8f0918982c8c121791bd997ad2b5f740a4b4699e41cda39185a13", "x86_64-pc-windows-msvc-0.6.6": "48fffdac44103071e36e4b3cf2a4a983c9c5c9847c684ccc181d4aa4953356c6", "x86_64-unknown-linux-gnu-0.6.6": "4947f38c4a9fa41ec431b25eb97be2f1a0ec5ee5bbba92d02c5264d24ecaed99", "x86_64-unknown-linux-musl-0.6.6": "4facff974881ca166ebf5630a59b1b2073d8b2e744d4e62ea3afae530fbac696", "aarch64-apple-darwin-0.6.5": "0aaba0d91936201966031aba56679147eb2fa9b36fbbc66ef22badc985c2c9ca", "aarch64-pc-windows-msvc-0.6.5": "6d839b1d9873d5b12a91ca98a99698d039e47b4a7679c8bbed3bb6c1cd386343", "aarch64-unknown-linux-gnu-0.6.5": "9fb9271adc1736bdb7c99a3ce9cbc28de72992b905dc3f79fc2986e460df4098", "aarch64-unknown-linux-musl-0.6.5": "30319306dc12ca27a1f53cad2530a421a3d60cda876d14f4e1052c6337658b14", "arm-unknown-linux-musleabihf-0.6.5": "adf930e07889e2698ad4d75f41b3e2f61076bb9ba38a775440b961171dddadd2", "armv7-unknown-linux-gnueabihf-0.6.5": "3ec0c17c2c27d37af626a71359b2504970ff4687bb348f627b2380532ccc0986", "armv7-unknown-linux-musleabihf-0.6.5": "e6d032b7af74238ded793c51c92a8dd4bbf21124e252e7be84fb1557a456410a", "i686-pc-windows-msvc-0.6.5": "41e43e300485f1004d82d5d418109f6b42d3430f5759e40956fcee9d17a66497", "i686-unknown-linux-gnu-0.6.5": "97d1e4525a73c428ddc59d98dea0817809982770d8f337012b9029334a67136d", "i686-unknown-linux-musl-0.6.5": "c1bad2b54f791376c5c8e41d7c06a1226ec0b88e38f8ba08917cca70a392d285", "powerpc64-unknown-linux-gnu-0.6.5": "68c67052898b8ab7d8b44fb7a4888952a5995188c79d5a998559bcee440dd2a4", "powerpc64le-unknown-linux-gnu-0.6.5": "bbfd7b1dc11debc27bb736ab485edaf6730457af55fc394a95e678a1b66e0357", "s390x-unknown-linux-gnu-0.6.5": "937c67cbe07c645267f77547d42886f65cbed713e3faa3e588d1a97439da0eb4", "x86_64-apple-darwin-0.6.5": "d19092460cb34259e16635eaa539cb396f836a777d687ead1f2bd84c0d9dacf9", "x86_64-pc-windows-msvc-0.6.5": "01528b56d42043548ce06d007ea0a7283963d3df99080ef5f44ff8d81d01c5cf", "x86_64-unknown-linux-gnu-0.6.5": "a7fd74932fc37758b40762fde340d1b33ad0d12356bd8cc7daca0e1a3c10f194", "x86_64-unknown-linux-musl-0.6.5": "fa4d4072d12f291ddb0555c2740e4fd03b0feba117c9287a4c035798bfb7bcb0", "aarch64-apple-darwin-0.6.4": "2648dd09984c82db9f3163ce8762c89536e4bf0e198f17e06a01c0e32214273e", "aarch64-pc-windows-msvc-0.6.4": "9be75d97d19f170b8ed8553c5632294cc16349bbdb9c669e532183e2bee0adf4", "aarch64-unknown-linux-gnu-0.6.4": "1b930eae2a4d4fb67aeaefdb902f7f826f18702e3785e283e08603a7b5f9290c", "aarch64-unknown-linux-musl-0.6.4": "a9157a0f062d62c1b1582284a8d10629503f38bc9b7126b614cb7569073180ff", "arm-unknown-linux-musleabihf-0.6.4": "a0490208c8df1a0bf2ccd6bbd28854ffb5c8ed3aefd50c27b618774d80b86a52", "armv7-unknown-linux-gnueabihf-0.6.4": "82a668a8734b293c6fa929c499d22fb32712af5e6a4afced53b024bb4d4ae910", "armv7-unknown-linux-musleabihf-0.6.4": "d17a4fbb3b41a9581e9a20fdab14814e333a2247896447dbc6790b6265b19603", "i686-pc-windows-msvc-0.6.4": "893f12374c1a18bad5e76888d27f218bd37bb5b65d560828b7eda239acaaab36", "i686-unknown-linux-gnu-0.6.4": "b80eb97a019e2347f9828be9492ca7770dd932256c067e3bc0aacd8d988aa90f", "i686-unknown-linux-musl-0.6.4": "a45f1fdbe989c55b4f25cfd652153941aacd860db0db522f34f3617638d25615", "powerpc64-unknown-linux-gnu-0.6.4": "98e60ac1b26d228dae77dc6dcad9b5b588fe1add6d969b1bbe70310779907eb3", "powerpc64le-unknown-linux-gnu-0.6.4": "4ff734d90955896ea4faba6cc606e4ca10611cd472734c7b19bc03967e3fca32", "s390x-unknown-linux-gnu-0.6.4": "d0d20038f1dc87b249d3cd8c9ee253095b9e71981e9c8fe3b77128dc1ac8550d", "x86_64-apple-darwin-0.6.4": "4438cbc80c6aa0e839abc3abb2a869a27113631cb40aa26540572fb53752c432", "x86_64-pc-windows-msvc-0.6.4": "929f333ffdfefd8d3aa059d3f3701a6cbf485b1034c476dd296ee05d86ab24bc", "x86_64-unknown-linux-gnu-0.6.4": "88d344e01a353e3737bdc7baee20cdd07633df639cb72d43d1e5a05262c20e37", "x86_64-unknown-linux-musl-0.6.4": "3ca04aabf7259c59193e4153a865618cad26f73be930ce5f6109e0e6097d037b", "aarch64-apple-darwin-0.6.3": "c65655bf2868545b293ad08ed5e4e9f79c0afc75946cc2d1e30824382bfabaf2", "aarch64-pc-windows-msvc-0.6.3": "2c8ae364f971be8e23efec0a503dbfdc6fe9af7c33460ab565673f4e85706866", "aarch64-unknown-linux-gnu-0.6.3": "856c58b4da96fe99b25e3f05171c94e9112c70f39d604e4bf3fa2686ad4bfa85", "aarch64-unknown-linux-musl-0.6.3": "3c704727e6c107988c71b27e5e14d7b30a368f2a5a0b114edb0061dcf05065a5", "arm-unknown-linux-musleabihf-0.6.3": "890cbed1f665d405577ccab01596442a6cbf26fbe266c5893dac2fa8a4b36d3c", "armv7-unknown-linux-gnueabihf-0.6.3": "66531f1cee1fa00581ebf4130fafc03616736c4a2a08c36b7f86cc89302830d1", "armv7-unknown-linux-musleabihf-0.6.3": "d724c8f5bffcb6e62b455cd97b66d9b6171b9cf40fc37ccfcbb5de3d53260604", "i686-pc-windows-msvc-0.6.3": "91964a944144408f8d590fa9714d65a437b845bd513a03f40c0b2ba9f85bc992", "i686-unknown-linux-gnu-0.6.3": "5a1983512f72dd120d0b54f41440816d66905dcaa77dc318436264ce777d8d81", "i686-unknown-linux-musl-0.6.3": "89656e5e91d7416fe4d3a08310bfdc75f2ead4d9c255d15c494de26eaa0a4456", "powerpc64-unknown-linux-gnu-0.6.3": "986fb9c74c930175ca0cb9322d6fe4683b2d1be6b406deecb95209f05b5535be", "powerpc64le-unknown-linux-gnu-0.6.3": "5bfeb126ab3e62a9fb68ac5119214a07dc8df50020fade860b259c0d71fc1069", "s390x-unknown-linux-gnu-0.6.3": "754880bfeaa0c9985652410eda4404521ed6fe8f2f0dc292c549811d2e41473a", "x86_64-apple-darwin-0.6.3": "b4885a75385635c49f642d0c19b805dbac15d810726bf1b85fe5be4fdbb27389", "x86_64-pc-windows-msvc-0.6.3": "2a4bdca05e61b9855b7668d5377503feb69332fd1401069392212e0579533608", "x86_64-unknown-linux-gnu-0.6.3": "1a0a66d0f01ff4b00c26d549260e94fc8bf41959351e82d99f04984bc055dec6", "x86_64-unknown-linux-musl-0.6.3": "c4fc0a8752c809890a2bb3aba69f4baf7c161635b389b470a5efd068e08b8b13", "aarch64-apple-darwin-0.6.2": "bbc64c8438edb6c98a466ee398e1ecb59d2b44ba78d440ce8f8194f994b42667", "aarch64-pc-windows-msvc-0.6.2": "1c28becfb6a220b3cf1eeb734bcf8c3220f24c3bc5a35a17e72d7c8352da9106", "aarch64-unknown-linux-gnu-0.6.2": "1f6150b98557a2c3d5f787285873a13abf4e5ca6bbc918f395c505ceb9968c3c", "aarch64-unknown-linux-musl-0.6.2": "0d6144d092e75c0233d92030fdf2f6254adbe24ead6df2ad41794ce8ed707bc8", "arm-unknown-linux-musleabihf-0.6.2": "9e540acc447da8403d43a1766395e4d2540b4b5315095a5be66b67a01990cd89", "armv7-unknown-linux-gnueabihf-0.6.2": "1a92c28c5f65b2a398f26688de2a78b65a98fb99c38ac32105f10a678d35b4ca", "armv7-unknown-linux-musleabihf-0.6.2": "00a575f242e3952503abb439af042603d820e6b347d1456fcab2d3ba791200a6", "i686-pc-windows-msvc-0.6.2": "c0be6bfc620eb25e2156aa309b8cf609af7df9eeb22695b0434fd5c33a63671e", "i686-unknown-linux-gnu-0.6.2": "d4705597f911f5c88681ea25cfe4c7a43128e69e1dfb4078bb8bbed444ba000c", "i686-unknown-linux-musl-0.6.2": "7001ea55d17a0064dafab84c1791191b1f1cd31426ce7492f56c908ff7adac8c", "powerpc64-unknown-linux-gnu-0.6.2": "3e114d3d0811c2a34907eab026beed360781039f3ca11e632e57a8c4610b9e6b", "powerpc64le-unknown-linux-gnu-0.6.2": "483ead7274158e524a0aa56a39581eac642ce5ba321a33defa0c578438b6a0ec", "s390x-unknown-linux-gnu-0.6.2": "248276692ddf53eb9d31fa7510b1da28cf58c3d745d71caac5d9a769726d8253", "x86_64-apple-darwin-0.6.2": "91666282e17342aa1011a7610c0044751b89e3883d6ad943800d1b9f102d5f89", "x86_64-pc-windows-msvc-0.6.2": "c3fca2b8be67ac608941ead77dc07b8ee4f9c884f8491b46aaff42478dd6a4c3", "x86_64-unknown-linux-gnu-0.6.2": "60c872a783212c625d0144f5dbf36e38086f6d558d11c45d2b1f067436eadc44", "x86_64-unknown-linux-musl-0.6.2": "62180be433beb803bc4dc0d3c554869700f92fd7ca91e55fb1a27d82606a159f", "aarch64-apple-darwin-0.6.1": "4717e99da1225409757ef00eaebdbdd9be4b17bb8a4199a3ecd73effe015a0f8", "aarch64-pc-windows-msvc-0.6.1": "9e0313f0d0963ef4ed51bc8eba22727799086275d03eca6bc78188113dea6467", "aarch64-unknown-linux-gnu-0.6.1": "8e718710942af98d260f7c78804ab330eed7bd74110cf3befa9e6addfe088b17", "aarch64-unknown-linux-musl-0.6.1": "92699465982ada2873b6ac7602446b2f463c37ecb7b5f1bfb950a59be00ee2cf", "arm-unknown-linux-musleabihf-0.6.1": "38edcddad278e39d119d29c95247aa1d65eeb86426cff05328a35534bc34adcc", "armv7-unknown-linux-gnueabihf-0.6.1": "da30fe4fdeac61d2064ebd3ba51b25e06cab08f5b783736075c267ae5095615d", "armv7-unknown-linux-musleabihf-0.6.1": "0d96ad3d841ce8b43a8d3979c48845bcc37e71d09d1064a6df202de78ed02163", "i686-pc-windows-msvc-0.6.1": "74a84fe2998c517d2825719067db793e365ec4247ce7f6a10839158e1b0e983c", "i686-unknown-linux-gnu-0.6.1": "ab64b064b6d455d938d8efbbee8357bf3b1aa38ade8487afce30453b720e03f8", "i686-unknown-linux-musl-0.6.1": "6f50e5e72524c59fbe4e04460882c0bdcbd64e480f1f08edcbf2ef7f1ed24a4c", "powerpc64-unknown-linux-gnu-0.6.1": "dc6536631c5aa1035a64297337a416d16d9d4b97e512733d21dfd32fce554e43", "powerpc64le-unknown-linux-gnu-0.6.1": "5e5df524826532096b2b723205ed56bd0d2d9c0166e30f9cf0fa2cb2ded77280", "s390x-unknown-linux-gnu-0.6.1": "6c70e62a993aa954e8a436753a99779f043568a381c1176048e5e51963ce2a7e", "x86_64-apple-darwin-0.6.1": "ff5b6b260da4baf8d2adfd7c44c44600ba4a3d5f7d7fc91b4f7fbf38ac3efc52", "x86_64-pc-windows-msvc-0.6.1": "a703f5008033bffb10ee2f9d96339de0bd5168440735b3d139b0548df795cdaa", "x86_64-unknown-linux-gnu-0.6.1": "5d15484335c777d8f7b031a2f31318f2d05fee197e18f0fbbdeecc4ed30c8537", "x86_64-unknown-linux-musl-0.6.1": "eb9fde50a96a7e0041b21743ba7b4a729f79e1016240fa34f6a570265319926f", "aarch64-apple-darwin-0.6.0": "3bfb3d2961c772f8088af50ff772531c366049611ee8841f041de14703dcbe6b", "aarch64-pc-windows-msvc-0.6.0": "f2f713b4a422f4b3b04ebbad7c373d8f5098f4460e1d431c964df7306dccac0f", "aarch64-unknown-linux-gnu-0.6.0": "62f7a88d3561156a6323f0eca63b164eedd9ae594f47afdc279da88574467357", "aarch64-unknown-linux-musl-0.6.0": "5d16ea77c9a9857c42fab12cf3604e22b349ce8e072c7ee73d440d48d3ca4a87", "arm-unknown-linux-musleabihf-0.6.0": "6d2e1fd7c861d19c612bf435a89a577916d6576590aa8f32731982e690d157a1", "armv7-unknown-linux-gnueabihf-0.6.0": "2a25e90741d2e60e2e7bde41b66cec87d1b356f339c7e01e8288f7a982589755", "armv7-unknown-linux-musleabihf-0.6.0": "e3ebde68b2df01902b72c030ff6f5467ffb38845bfc41736cebd14cef7cf65f3", "i686-pc-windows-msvc-0.6.0": "f544ff5db36dc1a51f0574b795541cf98a4673b95a5a3bd2e597cadeb5ea6622", "i686-unknown-linux-gnu-0.6.0": "9b7c4cd112dd2381b9443242aa76f8058430ae3db3b9e21738563628aa2e30a8", "i686-unknown-linux-musl-0.6.0": "c4c728ea67096c9f94305c58cb870b8fe65ecb70c93492d1cbebcd22dc5b6492", "powerpc64-unknown-linux-gnu-0.6.0": "2359c2795749f78afb8ac8e083b0338a7315dbc9a2030a0ec26e1d8ce4e31b90", "powerpc64le-unknown-linux-gnu-0.6.0": "ce2a2a7da602957479371be512021ce221234d8d821aa8e9725906d36b9df6a3", "s390x-unknown-linux-gnu-0.6.0": "04f1e927d8b560b2a8e680bab3be86e49883447c1f5a550d908edea4a6a10b5d", "x86_64-apple-darwin-0.6.0": "ca2038f716713e48847229c2a54f58aace01214dc2aac681042d675b84dd1fff", "x86_64-pc-windows-msvc-0.6.0": "9e69401032a71b88460752848263d856621d178599aaa8703a5942120768663a", "x86_64-unknown-linux-gnu-0.6.0": "409116e19a7c7cbb5736f7381d4c739e3fe5d3fdb458ca1e64f9576cc7ff48a4", "x86_64-unknown-linux-musl-0.6.0": "3a4850523d80d1ad421d4465cc500cb1c8fddcf37f7a3b57fe303619b1362442", "aarch64-apple-darwin-0.5.7": "b78a09f44dc60d8c894aba6cad55abd3b0eccc0992d60a86f74155fc459e227b", "aarch64-pc-windows-msvc-0.5.7": "2fc686fe1acc813bd51a2cac89f2cabfae9144db01862d04f052b06eb07cb522", "aarch64-unknown-linux-gnu-0.5.7": "f7a6aa00dbf0d6a5fbe038ec2712e3ae672d4650d5beb4bf7c4c0ce07b4a392a", "aarch64-unknown-linux-musl-0.5.7": "2509d20ef605fb1c8af37af1f46fefc85e1d72add6e87187cb6543420c05dfb1", "arm-unknown-linux-musleabihf-0.5.7": "bce8eb149d7a622f19d6eae9e0d71a60006ce6827b5f8f76e1eb9e56449682ad", "armv7-unknown-linux-gnueabihf-0.5.7": "2853dade653dd117c7e96e2657636989401e4fedaedc2b5858eda38b2a6457fa", "armv7-unknown-linux-musleabihf-0.5.7": "eaaea55623baa91c6e3f18631bd46d738c3942cdca19421d38c0bc07a4b52278", "i686-pc-windows-msvc-0.5.7": "cafaeddc1ffb710c931a5c62652ccd1732841b6b4b1f2fb9bca4b694853ed486", "i686-unknown-linux-gnu-0.5.7": "d01e7add53db3a90ddf5e2b78c913402a5b1a18007b217c9799563af49ff69d6", "i686-unknown-linux-musl-0.5.7": "1da292e227bc54148e4f7d7fadd4133163460c7f5660740ed6c7a26d68e9eb32", "powerpc64-unknown-linux-gnu-0.5.7": "26ed45af9776c0fc15cf61255752d4e94146587d6bb2789ba7abc12247d1222d", "powerpc64le-unknown-linux-gnu-0.5.7": "0e5d1c75a854d87b1b2205c10f785b2e21916da99b4a3a6e5c3cfb18afecdaaa", "s390x-unknown-linux-gnu-0.5.7": "99b58cfa25db69d8c73f00b6d1d79409ccd67b9b3fc5d628ea3ba4bd1cb26895", "x86_64-apple-darwin-0.5.7": "1f9a7d307f191781fc895947af21d32f8c810c5a5a4cdff16ac53d88a14acd69", "x86_64-pc-windows-msvc-0.5.7": "43db9594ec5b2ebdebbcf950199dbe52ea87ce5d6c5cc0f44356f91c62641c4b", "x86_64-unknown-linux-gnu-0.5.7": "2c90ff0c73eda029382f19717c74bc55775605d4682635cc8451a9aa56726740", "x86_64-unknown-linux-musl-0.5.7": "9a5580536ef9cea7d8e56be8af712ac5cd152c081969ece2fbc3631b30bbb5e8", "aarch64-apple-darwin-0.5.6": "4d42b0dcd3e0435f8487e13949959acfa1eea560875927464de77a98684ea8dd", "aarch64-pc-windows-msvc-0.5.6": "d6826baf8e5cc40a5045ece127eb48e4ce4e95aa80435b70831be1bc6ec7f488", "aarch64-unknown-linux-gnu-0.5.6": "78e985ae50bcab3e81c2bb0f0210034c266bd0569eb4684bb46f4bae6287701a", "aarch64-unknown-linux-musl-0.5.6": "4676099d5ea9e398dc18a6f095c9b335433be5dab69f976a47f22836421cec58", "arm-unknown-linux-musleabihf-0.5.6": "c577a9669a9d92d699fdfe0d589456c4b359b9902f45ed3b145586e4bf0f8bc2", "armv7-unknown-linux-gnueabihf-0.5.6": "3319ebec1cb8c8cd1482ea47f9e585716f24b01346b5099dce8e5976bb1b1eb2", "armv7-unknown-linux-musleabihf-0.5.6": "f90436d15b34311f133922451dbf8a28822b34c812b36cbc62d6616c37c93287", "i686-pc-windows-msvc-0.5.6": "fbbffe35e6aba3fcf78b40824d2b318b9f7c06a944e9ae4ded3dd0edeab3beb9", "i686-unknown-linux-gnu-0.5.6": "ca9c892b9a743705b2f3d3617e2b026e72c9f5c2004f03d1ca69a02497c7939d", "i686-unknown-linux-musl-0.5.6": "c8d0212e3fe04c58515e5849b60904e4724779dcd80647edc2cf3919c6915700", "powerpc64-unknown-linux-gnu-0.5.6": "7397515da0c4640e4b19770a1eb47db2c620bc4192e1aa305118600e67c7d71c", "powerpc64le-unknown-linux-gnu-0.5.6": "50067068b8dc9477e2583691dd1682ef6526d422256aa9dc51a5c78e9e5cd061", "s390x-unknown-linux-gnu-0.5.6": "f2ac320f11f317a9107fd2e1774db968b5f251980011dc297d640f52248303a2", "x86_64-apple-darwin-0.5.6": "dd286b498b8887b606d6054ffb2d387a32515847430d0e3b6d7de42e3f1ba042", "x86_64-pc-windows-msvc-0.5.6": "3132da48d8c0596079a96d3c68cbe5e11353c8ed862b4221b2036830cf86a1db", "x86_64-unknown-linux-gnu-0.5.6": "cbd59da00880a888f4f56dac3bbf14db5a4077d857a9675461753331cbdca207", "x86_64-unknown-linux-musl-0.5.6": "4dcad9362342e283b6161576b90967e6ea697fbdac728c921ab952d192e6605c", "aarch64-apple-darwin-0.5.5": "452fd58f29471a923c6b2cbb54935c4552ff327096951d51593db9886f600628", "aarch64-pc-windows-msvc-0.5.5": "f179ae5848892e940da3b27893bb5d0a9b1176a8228a55e099cd9bc7f16c0090", "aarch64-unknown-linux-gnu-0.5.5": "e220c82059a586ecaf75d00807d07fa9f01e8bc409db2146fe0cd04d31240982", "aarch64-unknown-linux-musl-0.5.5": "4f29e5958fe573ca746e601fe2f00dbe400e3b5dfe0b11be691341c61a70cd62", "arm-unknown-linux-musleabihf-0.5.5": "75f5d1420580f8b1ffe6369110f6756c2bc8a8efef53de2e6a991f62985d0f75", "armv7-unknown-linux-gnueabihf-0.5.5": "711b0a89db99bf3ea89e511a43e2f9871c097452c84c68fae8eb3c8348556c74", "armv7-unknown-linux-musleabihf-0.5.5": "e37f774d940210c73c89ef947ed568bd930ca1c1fe2a1cd64b5543a4fbfaf0a2", "i686-pc-windows-msvc-0.5.5": "75a604d31e2ecc4890727b8ac55e63be7cb3151800be56e62c4aa70f67b6d3e2", "i686-unknown-linux-gnu-0.5.5": "072370a5a3f72decdb0039a8c23c89a6982459fac128a368266d0b03933095ce", "i686-unknown-linux-musl-0.5.5": "a94d61080b0e5a7de01d70979b3a2a047a17222303f73a209715a6dee76234cd", "powerpc64-unknown-linux-gnu-0.5.5": "b63e223dfdebfe5341dfbfc5d806de321ac4e578d159a60ef6fe824bf6f65af1", "powerpc64le-unknown-linux-gnu-0.5.5": "37cb512811fcf5e9739b685b5650bde0ee59092dd5117ee7dd4ce7f922d57d13", "s390x-unknown-linux-gnu-0.5.5": "6e48b86a7f2deb032792deb3044142e77631c605028c7e94a53184b537d8a7a2", "x86_64-apple-darwin-0.5.5": "86dccec7ca8d7295bb3fcbb81d35f7f9541cb565ca9483aa60d1b5a5f5394fe3", "x86_64-pc-windows-msvc-0.5.5": "161eb7ae4f38d8b54e46b153f0a5b2ee6de55d198ca495ee1c0a1c0b2e0a8f26", "x86_64-unknown-linux-gnu-0.5.5": "718c12729718fedd4428c225eb73630afd89c417d46c1e665967d7032edb5277", "x86_64-unknown-linux-musl-0.5.5": "ffbc7246df97ac56e76c9d87f4fb38d118657d2dd37511ba2b5afa983bb8c9e9", "aarch64-apple-darwin-0.5.4": "ea3ab189cf6832dbf7e47a181b48f32e2a1cb5aecf9e26cbd08a64dc8e955af5", "aarch64-pc-windows-msvc-0.5.4": "17453d6205bc19b13c0a745ae1310e95582a6d310d7ffed7d36ed126e8c6fd85", "aarch64-unknown-linux-gnu-0.5.4": "0362126c7d8ba157cb6c184ae9c8195e6907d6afb985c5770190a14a34261e10", "aarch64-unknown-linux-musl-0.5.4": "1fb04c10cb4521b860d719e29fc755b560fa7bcb57083a62370a2561b6ed0fc6", "arm-unknown-linux-musleabihf-0.5.4": "12dd2f4702bb62ac99aa2727d2b7acfbf91911f4a910c8a7d43942fff82b1a96", "armv7-unknown-linux-gnueabihf-0.5.4": "dafaf104b6377bc8eda05fe032b9739d4794e66813699651123dc963b6f20c2d", "armv7-unknown-linux-musleabihf-0.5.4": "6c0eff2f4e2068311b99a59b54d3b86382a800695ec563c1eaf8724fd63c7013", "i686-pc-windows-msvc-0.5.4": "bf9549c14821c1cf3ecc65c7ddffd8b821b60e788d0fd5408ddd47a651b79e40", "i686-unknown-linux-gnu-0.5.4": "c3885e41027de2f4299a6487cf937309c69578ccdb352665b4fed982f194eaac", "i686-unknown-linux-musl-0.5.4": "4e4a46eee3d7f90ffb1c7d63d5a0d8ac6cebec70b027ba3584cdd92ab7a0120d", "powerpc64-unknown-linux-gnu-0.5.4": "6dc36b8dff0bea7ad9ceb93bac162808d263ccf2fc26cbf053c4c95e881c9c97", "powerpc64le-unknown-linux-gnu-0.5.4": "abf7bb581e867363f29a628f9f3dcced803af153fdf8ed2261cfe81410febe5e", "s390x-unknown-linux-gnu-0.5.4": "27dd2f1a71fae94dc32a58822ca9e108afe4b7e9430a327ee582781e647f14a4", "x86_64-apple-darwin-0.5.4": "50ff8dc05b3014089efcc11e2599f1760c98de05c58ab97dfb3bf81ba00b666e", "x86_64-pc-windows-msvc-0.5.4": "c5cd39373397efc0de80790fbd4695e5a47b5f204b6e9278dddbc84413730d42", "x86_64-unknown-linux-gnu-0.5.4": "c4c79e9c7d5ded882633a2cd0ce9fe6e863bfd37b7f16d817c075e72bfa53761", "x86_64-unknown-linux-musl-0.5.4": "9352706f5aeddcd5078d40208e8079da14e5d2377c1597cf64aa5bc4211701c2", "aarch64-apple-darwin-0.5.3": "8cd1ea3998d7f8c9f11173903a0d6b24936e1e7c007940ca970eb1730e352900", "aarch64-pc-windows-msvc-0.5.3": "0b37f4b0560a4d1bc1a166bc11d48ad489be448807d7de98a0134bf1aecde468", "aarch64-unknown-linux-gnu-0.5.3": "736a5145d81408efd47c6145608da1ed79458960e7afe5465be8c44f3556ffb8", "aarch64-unknown-linux-musl-0.5.3": "1aaf22470856e10ddebd54d52bcd4c8e3597d2d69d8769da8e8d8e5eee779a27", "arm-unknown-linux-musleabihf-0.5.3": "7ec43a16bcdc2ba915894650156d01e1f0c36ad98135ce243867b60149d0d685", "armv7-unknown-linux-gnueabihf-0.5.3": "252983a89f02f552996ff067658bdf9068a5cf0af9fbda822cb29a7454527d52", "armv7-unknown-linux-musleabihf-0.5.3": "5c2fd9f5c202f29438d40c36a404d29a6a6f825b9f9f6ab5f2826bf8a69a95e6", "i686-pc-windows-msvc-0.5.3": "caafe47897c19ddcef49b04ddbf5595c70579d6de6ec9cc39ad6fe05c76cd6a8", "i686-unknown-linux-gnu-0.5.3": "8cf260819f283b6237e26db6476f459fb521f6240fb80d26c2054e3b82cfb53e", "i686-unknown-linux-musl-0.5.3": "e5c803d1082f2c2888b7de24d12019dcc74d66ae8e330210ec70b85aeb890a8b", "powerpc64-unknown-linux-gnu-0.5.3": "c0dfd2cdd7bdc8115564f11a56511507b00b7e67670f6394a8062ca98027304d", "powerpc64le-unknown-linux-gnu-0.5.3": "0030d61012f1f1bf40820ae72a934756815421d704927c7de1bcbc8771d8a5c5", "s390x-unknown-linux-gnu-0.5.3": "c06c10cf368516b534a9d36cc08d299a38e8e24a876ad770eece707888ede208", "x86_64-apple-darwin-0.5.3": "c0f0e357bea24eee58b561094bfa879fef40a2a8c75bad817ff0c221c7f5073a", "x86_64-pc-windows-msvc-0.5.3": "3bba11d6df2d939cc177c8d42ff608b2cbce6a4b60c4bab6017b8caf068bddd6", "x86_64-unknown-linux-gnu-0.5.3": "7b852e08118ac957684b92a7181b0b8b9b9895a0664b72481ac2a362ea03ce67", "x86_64-unknown-linux-musl-0.5.3": "b122df3e968780c2e431c6b511bd6b0e6122492adf197b5a4a908c5c69a2d11e", "aarch64-apple-darwin-0.5.2": "4430d4618abefbe24b1d00a838ff5b71ea32cfaead6a74b63ea75dc9c6e88443", "aarch64-pc-windows-msvc-0.5.2": "bde8e2148961408a4590ed8baacd1da36cd9692a54d8e2d740fc079fdfe25361", "aarch64-unknown-linux-gnu-0.5.2": "097cbb25801b0978f2a36e0b13c690f97f7d4295dab3bf3c0a0d9dca7c510a75", "aarch64-unknown-linux-musl-0.5.2": "d7778db8b8a5c7e3836329aa0a80383d57802c12537d28d96f4c1231871b3f2c", "arm-unknown-linux-musleabihf-0.5.2": "22f2e012ff9f0ea279518900d9408f7db3bf65da16c46ea99e4260152bab4f59", "armv7-unknown-linux-gnueabihf-0.5.2": "1f0ece6651265b26fb77d8a55e94e4deb878b01b93ed16eeee669a6866898f6d", "armv7-unknown-linux-musleabihf-0.5.2": "c67250bc8b71fa21549c94a51d8a2978cf07e0948e057dc499f063f97446eed3", "i686-pc-windows-msvc-0.5.2": "ba6da97a6b867e9dffb47a66183ece2473732e5727fc0524978061eaff11ffbb", "i686-unknown-linux-gnu-0.5.2": "7d477c4a22c7b5b6ece7a4ce07f23be7324d42e5e94bb54ada12030c6df9d2cd", "i686-unknown-linux-musl-0.5.2": "f7ebab6cf87fff4480fde95a39b9b93434fdf03f4183c50599439eab7b3873e1", "powerpc64-unknown-linux-gnu-0.5.2": "10b25b83ac870aa5c7fb4a324867f57bef600a79935414e26fb03366ebc52a52", "powerpc64le-unknown-linux-gnu-0.5.2": "0f4a31076e1f4e6827effa6cd8701362e0cf3c580477a1f20d07fb21ca2b40f8", "s390x-unknown-linux-gnu-0.5.2": "3b1657b1496906fc8631b4ab755e1fc4cde194d322eeb903650b8224b858ef47", "x86_64-apple-darwin-0.5.2": "f9707b2375fbdf8e950b90887579733f0939604300acf6893e1796af06c15b25", "x86_64-pc-windows-msvc-0.5.2": "ae433fd8366bb858bbffe06a9e9eb15c74ca279b0239e4f0a1e35d638433450e", "x86_64-unknown-linux-gnu-0.5.2": "387ee9990724d9f5649329826e7723dad6730366719219a5464498536663ee1f", "x86_64-unknown-linux-musl-0.5.2": "ab1ddbe1c27d9e5e312b16c4503511ffc441c717853a8abfc31246c5e7ec055a", "aarch64-apple-darwin-0.5.1": "e12809a04a29c7730fc25764ceac4920cc0c91c3993ee78aa908c9157fcfbcd7", "aarch64-pc-windows-msvc-0.5.1": "4b1914f7dc169fb07d705d289a388236e16ebc6a9c26d9eb8d69bf27687a8213", "aarch64-unknown-linux-gnu-0.5.1": "abd51c9e4979f8af0d425bf12af5db908e85bb42aeec9b41644762e6b1a4101e", "aarch64-unknown-linux-musl-0.5.1": "a60c041279c7a7643418149b257cdcf53a5abd4c3330e28b15ff43ef9dd33bef", "arm-unknown-linux-musleabihf-0.5.1": "73d1236423344753d366e3596715b2e8874669a4110985f7b3002a1e5f71592a", "armv7-unknown-linux-gnueabihf-0.5.1": "057a80dd9e82cdb22eb7b3031b6ec0c203cdd866972bb910150ac3545edc8add", "armv7-unknown-linux-musleabihf-0.5.1": "d171c0fe5b858187a8d63ad5dee5b9a633ad154979ab3d9a9ee367f66b366ed5", "i686-pc-windows-msvc-0.5.1": "50b036460c1065a0355b2b70eb1fbc70eafc4d8123ab9a46a5d752e396480883", "i686-unknown-linux-gnu-0.5.1": "b66655c394b165b5327c1bd7b9f576b5ca9cc6328b32a0cc6ba603bd0bda4cff", "i686-unknown-linux-musl-0.5.1": "3d0935a33d9042d857dffa108519a140f973a1fce90dfce727e0f864c86c8fda", "powerpc64-unknown-linux-gnu-0.5.1": "9fa27a820fb7789b5f0b4a49a6f49ab2fb9248edc95895b57262307979b92800", "powerpc64le-unknown-linux-gnu-0.5.1": "c89bc97be4fe9a51b326172ade8a0d46cd943ef0bcb6d61217d3573c901a2d2e", "s390x-unknown-linux-gnu-0.5.1": "7ed88b3c2bcb861ac968a0c9a3cac791205930f97b58ee0d765c2eaf4f8dfde3", "x86_64-apple-darwin-0.5.1": "2728cee87b15d28d19d87d32c00c3ca5c742471c65a0395ec833e93ad681960b", "x86_64-pc-windows-msvc-0.5.1": "85a17d333edf667450fa873f3fa89c430b54b77ed0823e83ddc9dfd272a52187", "x86_64-unknown-linux-gnu-0.5.1": "4b442abb33d4f89f01fb7638e694aa9d92232da8bf074874c182a00abc545fe7", "x86_64-unknown-linux-musl-0.5.1": "d682c814942f9df7b5b291cdf7515a7e966f64728b03d933dc15b6cd97a0c4ff", "aarch64-apple-darwin-0.5.0": "a9203ee067703ef9589cae0d78e3def76e855650d721f77057a3b60638302b36", "aarch64-pc-windows-msvc-0.5.0": "bb1fc1540ac591b0f0405c472291a98697ccbd4c31f7d2af371943008a890ec4", "aarch64-unknown-linux-gnu-0.5.0": "6348b52aa618cb24bebab733da923ac4289cd04bbf32e6557b3b0f75ecf2e885", "aarch64-unknown-linux-musl-0.5.0": "bc47a3ecff865b38385774fd6191347ecebc201b3a5c0fb56b6e75bc67757ff0", "arm-unknown-linux-musleabihf-0.5.0": "c1490b68ead60c44c870fb944e2099e7f01446b3327fb8b16e5ae079b83b3029", "armv7-unknown-linux-gnueabihf-0.5.0": "741ea90fa58471c84be92e75d97e13510722adabfc5160838f228fca444b0b97", "armv7-unknown-linux-musleabihf-0.5.0": "d39bda906724f0c9b9c07055a37b0fbf156a637a2b42967578c8f6c7e655d460", "i686-pc-windows-msvc-0.5.0": "757430f6bac31b8d4ec08a6ca600cd4afb0dda0a2e78cb48054380895e70b8de", "i686-unknown-linux-gnu-0.5.0": "57863fad533914bb0a90e3ea29d861d5665c8b44cb5e97c79713b1139b1f7d7b", "i686-unknown-linux-musl-0.5.0": "bb28233b18db28b4e65c387c3a4ba195c44425154f8d1f900b1599005531be3a", "powerpc64-unknown-linux-gnu-0.5.0": "97d19ada60f37763437c41d8bd3b47a1d560841634abecd435438b89bce978a6", "powerpc64le-unknown-linux-gnu-0.5.0": "b9c0d1465a494db8babcafe1a4f31046d3af26b83ded6693d7c60fd0bc6ae806", "s390x-unknown-linux-gnu-0.5.0": "552efa4f0577622fb377f54c8dfd49adf9be316f59c199b60cda38ea2725ef89", "x86_64-apple-darwin-0.5.0": "283a2d23af7d3b05173e34aade53c4d04694e44ca240b61e5b95c887a379eaf1", "x86_64-pc-windows-msvc-0.5.0": "3c5305938a44803ea5b2aafe896c1edbbd721d648a768dbd061bc66a18caee98", "x86_64-unknown-linux-gnu-0.5.0": "f8a054683586cb3edc3ba072d4916d7c3962910b0d46bc6d4e70b4894d70f6cc", "x86_64-unknown-linux-musl-0.5.0": "32f4dce258b73f350dd4aab46e7ab54ff74ffb31f3ab2c46e7168f2afd624c78", "aarch64-apple-darwin-0.4.10": "5a4ff81270eee1efa7901566719aca705a3e8d0f1abead96c01caa4678a7762e", "aarch64-pc-windows-msvc-0.4.10": "6b526e4da0d45589dc1247615e418d5e82490e25f8234b45551b2737f14ca5a1", "aarch64-unknown-linux-gnu-0.4.10": "d0504790c1a3e083ff9b81a7c4f7e5f92d354c2448383a62d36a98e0192252ec", "aarch64-unknown-linux-musl-0.4.10": "75332c97520233b5f95cb3d40bdef13b40e1aa5e6c82a078623993545771f55f", "armv7-unknown-linux-gnueabihf-0.4.10": "78674c5c0c20609f32192013f03fc42b7a8257eedf166f5ca4482c15a81f5380", "armv7-unknown-linux-musleabihf-0.4.10": "c6837da9190abae061b7dac80d720f4a20b59150b65af37e88f40ef5c6d8db9a", "i686-pc-windows-msvc-0.4.10": "186e622879758c4f26026927415ed7ed57871b95ae241d39e4128007319eb3c7", "i686-unknown-linux-gnu-0.4.10": "709db256cf5851abdac8cc836ea0ac632b6534989c68838041178ed005774203", "i686-unknown-linux-musl-0.4.10": "53753f38ad61b20c04d4d41d50574ef96e9d865c22d71fe9c44984db7ea85cc6", "powerpc64-unknown-linux-gnu-0.4.10": "16e1c620b032e6cfe20f37be8cc34ef05b2e05b76e70aa8225dbf98ab0661f34", "powerpc64le-unknown-linux-gnu-0.4.10": "4ea8a828ca38ae12d9f44463d8eba624c520e31dfd67bb6aefb01e9214f4d0f1", "s390x-unknown-linux-gnu-0.4.10": "f7a180060853e4b4144223f3b18b462cc81560e9b46170c6276962ec82245a10", "x86_64-apple-darwin-0.4.10": "6e96f288d13b68863e79c9f107a0c51660215829726c9d3dc4879c1801fa3140", "x86_64-pc-windows-msvc-0.4.10": "8e3305d1b6411a8ae5795790e473f855bf12d074e9e9716e2ef104e9ad499c25", "x86_64-unknown-linux-gnu-0.4.10": "f81c53ad162076be1459450a20f8ecc9949731695c3be29bdf37f712cd7520d3", "x86_64-unknown-linux-musl-0.4.10": "332ba368c6e08afc3c5d1c7f6e4fb7bf238b7cbf007b400e6bdf01a0a36ae656", "aarch64-apple-darwin-0.4.9": "5f4506d7ec2ae6ac5a48ba309218a4b825a00d4cad9967b7bbcec1724ef04930", "aarch64-pc-windows-msvc-0.4.9": "28bb29e09943707cd16fcda5160039fdecb141903ae69c666395398d5cef5231", "aarch64-unknown-linux-gnu-0.4.9": "a4547767dd3668f167e189ae01e7c4fa6b453e88bcf5c582dc42d5de93bf9688", "aarch64-unknown-linux-musl-0.4.9": "00c50563f9921a141ddd4ec0371149f3bbfa0369d9d238a143bcc3a932363785", "armv7-unknown-linux-gnueabihf-0.4.9": "83476aaaf2a06558598c2f86c9b4a2ca8969722cb04eb52e2d10bae801148531", "armv7-unknown-linux-musleabihf-0.4.9": "c08d3faeeeba8de82f0cd0c22bddc247ee239491ea736f7fe0240ff55266bdbb", "i686-pc-windows-msvc-0.4.9": "5467ed22a35735d9a35d42677a933ed37143ab750bd808e270d88c05db067e8d", "i686-unknown-linux-gnu-0.4.9": "741a8d8a088507952c7a30573ccb5e3581902d1a30a10865aecf4a41c7fa2f99", "i686-unknown-linux-musl-0.4.9": "4b8e144f048ae8a21d9a2cd83a76fc89450a156571333b88639f60bd77fd656d", "powerpc64-unknown-linux-gnu-0.4.9": "306b1a3e217905201463a69a2080f377db5d73c3c7b01a8eb10907cbbee445d6", "powerpc64le-unknown-linux-gnu-0.4.9": "f6f776b7435fdd7060c17939e91b9740d5bd497da3bd3a2a7f8053116bed329e", "s390x-unknown-linux-gnu-0.4.9": "0af4288944987b0a69b92b709c7bf4d1d1c66787c80c077fe66152472a415b95", "x86_64-apple-darwin-0.4.9": "e4d745adb0f5a0b08f2c9ca71e57f451a9b8485ae35b5555d9f5d20fc93a6cb6", "x86_64-pc-windows-msvc-0.4.9": "db955f6d099ad93ba09035eb652ba16b06b6926571f8f27bc93080dfc12d25e7", "x86_64-unknown-linux-gnu-0.4.9": "bc5df0148b2c173f89043b4dfb47ae76d75d2e5bac88d41bc2a1fd0d1eea3763", "x86_64-unknown-linux-musl-0.4.9": "5ceba21dad91e3fa05056ca62f278b0178516cfad8dbf08cf2433c6f1eeb92d3", "aarch64-apple-darwin-0.4.8": "a33ee7dbd52ba3b0ce4005914f200fb1a138306f1bba69963a7b9f10032aad1c", "aarch64-pc-windows-msvc-0.4.8": "84dd466862fc9532c1ecd30f080ab4b9f876a46a1158fe726e808026bdb9c726", "aarch64-unknown-linux-gnu-0.4.8": "1773c0b7c0a5262aca03622bbe79ec2a7f12fa244699c08f9dba1faea45e7b68", "aarch64-unknown-linux-musl-0.4.8": "1467455eae9dc234fe2d898a246b2a4266f3b3e35d1247db76cb1f65bbfe33f8", "armv7-unknown-linux-gnueabihf-0.4.8": "d4c9ed3fc02c4e304da37124772294f37ff1234f38e2a6f81a6e6b6ba96e55ee", "armv7-unknown-linux-musleabihf-0.4.8": "41d24bc8adae3eda2ff2ba2eff77bf0baf32f4c2d34a7f666e1553f780e027f3", "i686-pc-windows-msvc-0.4.8": "b5a64df0ae78d89d67d6247b3694eb516b7ca3021404f74860cbd3b0db3aed89", "i686-unknown-linux-gnu-0.4.8": "e7456182deeda5919cca37fcdec815390d9755e34c9067b1e2438026814aceb8", "i686-unknown-linux-musl-0.4.8": "69fca92a038740def8bff80ad460592c1c63576ce9c01ab0ed882cf7360e4b82", "powerpc64-unknown-linux-gnu-0.4.8": "10347afab812ce9c3bd574621f38af3ebafd373a8c5051229c0e7c45eebe8301", "powerpc64le-unknown-linux-gnu-0.4.8": "5beb920599a54394fef7a92cd1ab2be941c8bd9bba0ada0ce8c8b14d780ecb86", "s390x-unknown-linux-gnu-0.4.8": "a170fe0a332050205c17e821fae199ccfab8d3a5b9ffc803f4260aaa511e6c36", "x86_64-apple-darwin-0.4.8": "534425542c504dcd0eeca3f26155a72394b02b312d3a026d14015b56cb1ae259", "x86_64-pc-windows-msvc-0.4.8": "a2dd4edaf097916cbd79a743bd180d5a046ff37f03a0043e91bed42c17d24770", "x86_64-unknown-linux-gnu-0.4.8": "5d7a80dccb0bb87a7e9ce943f98794ffddb25ae40350e9ef7db67b73adf7732c", "x86_64-unknown-linux-musl-0.4.8": "0cfa9a8b1f9de43dc642808552c72d40d7619905fa91cd40b90d858b792accf6", "aarch64-apple-darwin-0.4.7": "b2f7e84d50503dfedf3c3162d01de94006804e31e566dfbb345c5cc8e06b803b", "aarch64-pc-windows-msvc-0.4.7": "63341a074cde41de5cbeb7d2316e5bf97c4b45a2a185f3757823ec660665cb8b", "aarch64-unknown-linux-gnu-0.4.7": "a462915f1f46d3e22b488c73b3a02526687823fc62e3aff8208f61c553bee52c", "aarch64-unknown-linux-musl-0.4.7": "974b53c02d5ff9ffa8b55005066f773847016010d46ffb8fb4dfba644be08027", "armv7-unknown-linux-gnueabihf-0.4.7": "cd8f886948c997837a36a035c91e1d23253be29b5eaa2f16d7541649aeddbd7a", "armv7-unknown-linux-musleabihf-0.4.7": "526c493aeb879cb4a36b09d5e1769715a638de8076fdd27dc78a59e5faacb23a", "i686-pc-windows-msvc-0.4.7": "1663aa60ff9bee55ab5ddec0c583850a9fa21393fef466ebc9296f9d431040d9", "i686-unknown-linux-gnu-0.4.7": "a70e697158b1f5e4352877c8137ee004c10f383499e293e59a29599a0f9b8fc2", "i686-unknown-linux-musl-0.4.7": "0577c5ded19de2d7bee570da683ea7496d21059b395cc0457ccd56c7fa9136b4", "powerpc64-unknown-linux-gnu-0.4.7": "ee987be6f0f620e0c80e31dae9a458dd3db7ef55d30052001bd3990c24542216", "powerpc64le-unknown-linux-gnu-0.4.7": "d5866c4482b81e8cf6562d6e01c31bd9a58dcebd7877e20b7d6b62c35bca8994", "s390x-unknown-linux-gnu-0.4.7": "bd141b8a2202a2f4a6864a948bfeabed7ea092e3e491ffbc79cf73b5fa71947a", "x86_64-apple-darwin-0.4.7": "d6a9b5d26710e60daccc0b8c1b74a10d0e0efdff7276fa9bcdb0b04973831d5a", "x86_64-pc-windows-msvc-0.4.7": "10f19d4d6de1bb36b5ad9245dac53cb710c49d2c6d3f908a90690fce156d5554", "x86_64-unknown-linux-gnu-0.4.7": "35ac1a27fa9d7cb7d591109c143e474791f4beba51c9f7f677d28c6c66b4781a", "x86_64-unknown-linux-musl-0.4.7": "f05d307c097a3aae3085fba673f4f89e1964d68049353d87149e15e3d67d4855", "aarch64-apple-darwin-0.4.6": "231a24dc2fc2496c8684551227100f485f5c980f5861037e878a2701ce02cc57", "aarch64-pc-windows-msvc-0.4.6": "a9fae31935454dc881bc779af0565aebf24391d080b8ca7c44146330f9162917", "aarch64-unknown-linux-gnu-0.4.6": "e0d7ab7ed513e995bac9451ed73bd8e4d6db911ffb11104dfa6e31c80c2a8176", "aarch64-unknown-linux-musl-0.4.6": "a7408d3d3023d991d1c6a78269f93db0dd639c9024470fccb63f1af615f2220a", "armv7-unknown-linux-gnueabihf-0.4.6": "293357b94248ec78c575209c8cc7d505f1c6f71ff67394f3d23620629d4e4634", "armv7-unknown-linux-musleabihf-0.4.6": "8fff44be5bb05169f8bfb49f872f71ff55ef05b8b7b52b80f0ac7d973a743087", "i686-pc-windows-msvc-0.4.6": "36c36935ce395a9d38f9f9a6271cc990d022d2a16ec187753f33b16d7f1ca2e4", "i686-unknown-linux-gnu-0.4.6": "08f09ef6c2da423b144f3bdcd3def31f6a06b16fd4b81563e7c842fb1de0ece8", "i686-unknown-linux-musl-0.4.6": "f03f3bdc0efa50d1901f311cb96bbaadbfb5eb240b59fc1682b8e787c8ab091d", "powerpc64-unknown-linux-gnu-0.4.6": "c8230cba8f304503daf6732099375928c126c6d3254bcfe642fe37e398008727", "powerpc64le-unknown-linux-gnu-0.4.6": "8158a197b955e9c7e720c6191d4de98f602033f5a15e66843a438544666fa07d", "s390x-unknown-linux-gnu-0.4.6": "1c9d86e6d08d742aaa0305e004c2b848aa33b240e729befd09cdefcec356b3e0", "x86_64-apple-darwin-0.4.6": "566e96e074a2d05c97a8d56d3a7239d235e30adeee8f11495a8715e812275012", "x86_64-pc-windows-msvc-0.4.6": "0bd9f80fe9c6cb1fcde9f835b4960b22192d81cd71533c52114e548a82164aca", "x86_64-unknown-linux-gnu-0.4.6": "1b11ca05173cd7ed3176ad59692f9eea46368bfc5af2a6a7dc9716a3c485c489", "x86_64-unknown-linux-musl-0.4.6": "59d2ff184a29e260f6f27b48c809496748a3740261cda4becfe23c05c48eca34", "aarch64-apple-darwin-0.4.5": "a28c848121008db5f69bf07e0f17a4f377c92798c222b2483401598d3490dae3", "aarch64-pc-windows-msvc-0.4.5": "81558226974c8b83d9a9f8358a02882e46f06b83aa1ad8565cafd3a02d969f83", "aarch64-unknown-linux-gnu-0.4.5": "062ef3258d3fd849f2ee38b2853e6d6ef69a9d6b2d0bc3db1d2e73a5748c8f0e", "aarch64-unknown-linux-musl-0.4.5": "75e0413e1f69f369acb6fbdb881596b65cc85ca10596a221a2f20d7bfa9f1c9c", "armv7-unknown-linux-gnueabihf-0.4.5": "11d9df1fdd3e2556dfeb654eef9aab715e8e185e2fde6c991e8f9514f8a9002d", "armv7-unknown-linux-musleabihf-0.4.5": "15b61b81ad6ee8539d216b38fe3e8f6d3655eff6999fe27566c607abddfbff0d", "i686-pc-windows-msvc-0.4.5": "6327c1ef1e127edae343291ef412028e2b332cd321d076542df9d1532fd1d171", "i686-unknown-linux-gnu-0.4.5": "a54408489595bac3b15946c7c5dbfdd82483c271e1a80f9681b9ab0e4085ff44", "i686-unknown-linux-musl-0.4.5": "cf8284f7d9ac447ca930f766a284b025c54ff145a7718e44715469ce1f88a772", "powerpc64-unknown-linux-gnu-0.4.5": "c57b35644382bf76b067215d5188193b028b09bbc901840fe41e9675f4506690", "powerpc64le-unknown-linux-gnu-0.4.5": "117f85f354f6c4ba27191ec47c727e35dcabb75d17fdf452fb0b63370ff11158", "s390x-unknown-linux-gnu-0.4.5": "dc81c04c8fd4d8d155995aed33d363e8a04cb383b646ccfd584bc2f581730586", "x86_64-apple-darwin-0.4.5": "375297b66e959feff1197f72b23586cdd390f0364fcbd0d58fcf7531d231ab71", "x86_64-pc-windows-msvc-0.4.5": "65dc3b98413be7107545a4655e074ef93b0b42b5f230686d7dc69bb79f96b2c1", "x86_64-unknown-linux-gnu-0.4.5": "06c5fcd608efd04145f956403a489bd7f2d1df2b4addb325567f6e62f2184b56", "x86_64-unknown-linux-musl-0.4.5": "47e0722830941b2b43787dc57f0fd00ab44bcc99e6dfc8a0dbbaf968bd6d20d1", "aarch64-apple-darwin-0.4.4": "bc285f4cc528dd1aa495e4e58c8d204720389b5ebab3deefc14cb97d07a1a460", "aarch64-pc-windows-msvc-0.4.4": "0f2739a3397f55dc5fb8538140e689258554fcc0690501f65bf680bf3c9361db", "aarch64-unknown-linux-gnu-0.4.4": "8ae35b6773bba1ca414c5134ba7e10935f35880bebbe50f18bb609bad9da5b13", "aarch64-unknown-linux-musl-0.4.4": "5af292e49f9370029add3871be04f21aac331ede4c96360fab2576e422f46a1f", "armv7-unknown-linux-gnueabihf-0.4.4": "853d3300faa639cbc8e88598107ac768adef21176d117b39859cc03e8f39905a", "armv7-unknown-linux-musleabihf-0.4.4": "b3c9be93f8954c94136ac8090bb86cada892d20c1d6e20ddd6991940bf676b2f", "i686-pc-windows-msvc-0.4.4": "331616b32e38ff39c6b2ca9d73eea00deb718f7042b75eb469559c29c1acf46f", "i686-unknown-linux-gnu-0.4.4": "e153049d4b781016b2039d36ce8eb721f36062303eb2ec995b72eb3b63a2c979", "i686-unknown-linux-musl-0.4.4": "e3978d026b1691a0f3be7d12a5d4e6323f6758f61b9d44f2a8474bbc231e8e1a", "powerpc64-unknown-linux-gnu-0.4.4": "93d28dd3d7eb723a149bbc49c260b3b84303459ed9f83bf10723904087ec43a6", "powerpc64le-unknown-linux-gnu-0.4.4": "f98586c5c71042738061c7b988aa7b205da78ec38ca3148cb4a45b4719454616", "s390x-unknown-linux-gnu-0.4.4": "010e612941be7a06e5f0b04ff96242cf4015b32382fbdd1cd4eace63b3a7492d", "x86_64-apple-darwin-0.4.4": "1c2acfd16db77b010873053ad43160951baf2653cfc38bf66a3f377912f49299", "x86_64-pc-windows-msvc-0.4.4": "0e8d426194ae101892ca554d99365ff97395ec77d19ecd9b8b01a4e12ddda682", "x86_64-unknown-linux-gnu-0.4.4": "77240a01efe7063b4755e2672ad85fda9e3d9c13ddd15157642b0736fed26b1c", "x86_64-unknown-linux-musl-0.4.4": "328bab49c2d4b65e019466e1a0bf50dd017d56ade609f43f0a9e74898f21ca45", "aarch64-apple-darwin-0.4.3": "7b29fd8fd234e091afc264bbad95c54a9df99da490eeac67309efd58e36c2f2d", "aarch64-pc-windows-msvc-0.4.3": "2c7cbbb5819cb6ee946efd1ed871fb655302b55055cde1b43894620b808bdd13", "aarch64-unknown-linux-gnu-0.4.3": "e660824c56e0e5ec73f9e38f054e5e8542992b95f7bc5a0d9185840637c913ee", "aarch64-unknown-linux-musl-0.4.3": "78c300a606ae4519b5ebb5acae800d3394f848363418b8697ba96e54758b8d17", "armv7-unknown-linux-gnueabihf-0.4.3": "b60b1833dba278a7d05169b22d46d74706627af7ed3e704a2e7197a0d1213a6f", "armv7-unknown-linux-musleabihf-0.4.3": "12e349d1b027801b764cbb0465152d6d9252136600242243a44695586656daec", "i686-pc-windows-msvc-0.4.3": "b50ed1c9f20a2a1d6ed7d961d5f1df76423ee7541410a4460fed5353e5c5f846", "i686-unknown-linux-gnu-0.4.3": "29c8a4753bccc544cfa36bede043c88d3a856ae37744827cc6791ac2e46eff91", "i686-unknown-linux-musl-0.4.3": "6dc175c1a484c66bc31bae5cf4b35861bd97a959867302e040add9ff21d48ff9", "powerpc64-unknown-linux-gnu-0.4.3": "4d03a4dc5aac4a17b679eb1d7e386b0da62c4869ae55351761fbc73a899559d3", "powerpc64le-unknown-linux-gnu-0.4.3": "c5eb76202430d75a0719a9d6c6f678077fc5ddf80eed81c1241f4e799f28baf1", "s390x-unknown-linux-gnu-0.4.3": "0f6290e5ff7739e7191636355d3544e0bbf7b1898e5ef8f074ef272c3c8c4df0", "x86_64-apple-darwin-0.4.3": "8dcbc118da18a6c83fab6778a130708221c214f4edac9cebb64ad2f36af3f7ff", "x86_64-pc-windows-msvc-0.4.3": "25955175aa3ea8f250d8569b4bc6a0837dca7989873ef1de3479588bfc876211", "x86_64-unknown-linux-gnu-0.4.3": "40864cdabb4e7ca2f6bfd155140771c87b737c6c0fc821bdb810e5bdd2ef4478", "x86_64-unknown-linux-musl-0.4.3": "9e90b212a0401d4026ef5f52a038fcf59354b83d2eca18edd9f016f399e97cbc", "aarch64-apple-darwin-0.4.2": "b39e01c746c5453f529fe6fb4720276cf8c9c09278b0426b4240bf7d9eece34a", "aarch64-pc-windows-msvc-0.4.2": "19febbd1eb6bf4c7091b323548aee452d342e35f0daddcb2445e4416bf37bfaf", "aarch64-unknown-linux-gnu-0.4.2": "ab79c2354b8f9d0be97a029f2625db1db03dec1f28f8234b19cb56ac94ac1000", "aarch64-unknown-linux-musl-0.4.2": "b0b1341b8056adb82e42310c92856469191a190d0b4f22727317a77d3e750e6f", "armv7-unknown-linux-gnueabihf-0.4.2": "2de0df2d8eb3a3bc49f7ded118d09cb0d4a6fa115808b668a6ca0e7643a0dd51", "armv7-unknown-linux-musleabihf-0.4.2": "b3dd361e4e24d89651a14ec6f3f50c1bf30ea3ead69fdd394eb9389b15449808", "i686-pc-windows-msvc-0.4.2": "521e4088ae693eb5e2ad16f6a8d70ccf97c2ca3b733117a50af27464036d3af5", "i686-unknown-linux-gnu-0.4.2": "9209a27e22238d905772034612de530eaaa400f870950bfcc4737887a25eee86", "i686-unknown-linux-musl-0.4.2": "e47674586e0c228691c66ad5c228865b4394c20953717b3c1840eb67fb318a22", "powerpc64-unknown-linux-gnu-0.4.2": "59dc57b4b3172d96678154757368c8a97369173783ebb075641de40d203c507e", "powerpc64le-unknown-linux-gnu-0.4.2": "fdd8fe4d6035dfdae15980c2e52abbd030d68f41e6f9cb7bfac8c6e928b088d4", "s390x-unknown-linux-gnu-0.4.2": "4036c95405941535e6cefbc6d8089b029042bdba6a9aa5c5bd4421139dbd4fdb", "x86_64-apple-darwin-0.4.2": "49c80d714b0c578a244820462c4aa1fa66556c2271ab32b81126980f7bf98dec", "x86_64-pc-windows-msvc-0.4.2": "ede9b71bae135e2042a5bdc61446da4c059776640ca803dd24a07a3d9a335ec1", "x86_64-unknown-linux-gnu-0.4.2": "9951c9d13cca258d326fabc7b167a22539423ecf663f0e9ffa4f10f2f0cf705c", "x86_64-unknown-linux-musl-0.4.2": "b49fc92f04f06ee5851c2193632f6afe00ac2004fa8e06b1118bd282fc748512", "aarch64-apple-darwin-0.4.1": "a990d1ff93f9eb039ed2ff68e283994f070f7c5fbc45e2f79ba0d6a0a16c38a8", "aarch64-pc-windows-msvc-0.4.1": "2753f817675f6e3f31c324159e08ab0e1103056d4abd9e24c3042bc59bebec88", "aarch64-unknown-linux-gnu-0.4.1": "7f708f2972cc027e8d4c6bb18264a2431e9f9b0d996e22a2e8ebee1dd9518068", "aarch64-unknown-linux-musl-0.4.1": "9577e1ee51e3895bcc33cab17133683cc9809d0add9163d7ec2b8015837cae8b", "armv7-unknown-linux-gnueabihf-0.4.1": "e43d5fe3227f8159b9d456ef60bc51fef736c28e3ee274cc35e2d61b484110b4", "armv7-unknown-linux-musleabihf-0.4.1": "50a9fffadc378671386f35faad97de43b5e0351d5d1b70b5fcf36bc2dcb6d797", "i686-pc-windows-msvc-0.4.1": "46862da5b90eaf4d4c7eeac6c889a7d713d85c13a7acc828ce5e161d4d8f8412", "i686-unknown-linux-gnu-0.4.1": "013b4e7618caf4cae5dcb1d376f97b998d7df6d28cfda6cc7a41c0ceac17cf19", "i686-unknown-linux-musl-0.4.1": "148202d9bd2ea4404f777079eb19b54125e72c8b86aa38f3baa11be546c93996", "powerpc64-unknown-linux-gnu-0.4.1": "69c9894c3a6a6a96e8de9b7f7d620ff8365b4f016a0910e07f1bf36f1381df82", "powerpc64le-unknown-linux-gnu-0.4.1": "05738355269ef78ac5cbb3d34538908406f556bd0824a067a95e69afdf5eed79", "s390x-unknown-linux-gnu-0.4.1": "42d2f971f2e902f6264b0128933612724b1c5305d7a71d4f6ee99010d45fc4b8", "x86_64-apple-darwin-0.4.1": "cf5cf66d116a26c020ea7ce158015bde7a91b3737f788a7dda9660b40585d623", "x86_64-pc-windows-msvc-0.4.1": "836106da10c5d575416bc47cafab8d9b7c62bc3f9b69ad215100b09f0507a3ba", "x86_64-unknown-linux-gnu-0.4.1": "209f710ac1ebc94c73f7cc235b32c8090a8eafbb743388577d5ec464e02be4fd", "x86_64-unknown-linux-musl-0.4.1": "7d8d7d820f3ae95873be3deba993bb61df70e8f61ad5b4faa77ddc310cd1990e", "aarch64-apple-darwin-0.4.0": "f9b8b41f94abe68e306692d416a0038b19d16572a77ba1c5a652504e1b0464a0", "aarch64-pc-windows-msvc-0.4.0": "2801603ba69d3f9c31a5623ebfb4fe85fd746357ced0ef67698649b93fd57c05", "aarch64-unknown-linux-gnu-0.4.0": "ade05637a28fe848d05c93a7d79bfca8b22c0a20423353835272705993f7488c", "aarch64-unknown-linux-musl-0.4.0": "5d35ddc84334680baf6f931fd6b3421f62938bd19e1a2f5056d2185090172a42", "armv7-unknown-linux-gnueabihf-0.4.0": "d858f8f94ae9c6eccc1c16bbca3e6f7202d5144f651cef7e70f17ef43d2df019", "armv7-unknown-linux-musleabihf-0.4.0": "6a144ea7ec12631658698c6a255b5e4c008646dda7e93aa6c4aa52a387735e95", "i686-pc-windows-msvc-0.4.0": "8418876862e4451f05e28a6fa2be1f9124a30417ad32417d892e267fb2265779", "i686-unknown-linux-gnu-0.4.0": "0bbb7d81a48a58e30307403071c8c5cd710dbf9e5ac7c8bd67c6164a57425a9e", "i686-unknown-linux-musl-0.4.0": "01a583171ebb120b546c95303c9ae5b9a0e39754b92874404846ad1ab5cd1fe4", "powerpc64-unknown-linux-gnu-0.4.0": "df54b669b91c871f6c26a13f10842dd7b00dbc06511c91c564afebca1c427821", "powerpc64le-unknown-linux-gnu-0.4.0": "280df270f5ec7750527db192ad17f434bd978392e4cf8bfd2a357bc11f833f3c", "s390x-unknown-linux-gnu-0.4.0": "81ef643ba59df454452dfee85c6af3f09b5efb8684a686d6ba20428bfa7982eb", "x86_64-apple-darwin-0.4.0": "5f465a406801abb3e91fcbfb7203ff612d94f7a18b465846bea535b08b69b506", "x86_64-pc-windows-msvc-0.4.0": "813395d368745b4ee4ddd5e2b5d7abf28ef9fbd16ce8b55cc2d178f0b031e7e7", "x86_64-unknown-linux-gnu-0.4.0": "45d7954dc94fac3044c1af58a0ac7f9a5ded6bafe522884ef72b1ea3504acba4", "x86_64-unknown-linux-musl-0.4.0": "9232270f0bd96a5265d509bbf4d438d52934e89dba4b7c85bb7ab66d1964c684", "aarch64-apple-darwin-0.3.7": "a29b08b6d793c516ef7ffacc76a666905c5efb7eadd98e28cd9a4d50016731aa", "aarch64-pc-windows-msvc-0.3.7": "e7155b46a4242d9013b8eec2a669b54719f0e53383d0b7f135fe9a8bc2d7436b", "aarch64-unknown-linux-gnu-0.3.7": "94cce1c7c52695a796ad5221f2d04acc9a183800755758f1ef4ad82a745a52d3", "aarch64-unknown-linux-musl-0.3.7": "0e79fbefcd813a10fa60250441bbe36978c95d010b64646848fada64b9af61f0", "armv7-unknown-linux-gnueabihf-0.3.7": "1a9fa98750d739fa03a8e824c6676a208298bda3a053f1da7e4f3fd25575ea48", "armv7-unknown-linux-musleabihf-0.3.7": "105b028285939cad444179d4ac9cc8bec94795a137f973521a207d8fbb34d267", "i686-pc-windows-msvc-0.3.7": "9a7914be652913b023e0fddc7532b233472828bdc0ed1e8deb3ff2eba2bec4da", "i686-unknown-linux-gnu-0.3.7": "be8d5f80e25e502b05fe12f2fff45ac9da813b94e52ad615ad97709b0c3973bc", "i686-unknown-linux-musl-0.3.7": "e51fcfee5fb4010812c8c1e25952d56a884d011508acb5e78fd7c0d8887cbf09", "powerpc64-unknown-linux-gnu-0.3.7": "affd9e23e8f281ac6bec93c6da55c3179010ab816196ff505c8d21fdc90050d6", "powerpc64le-unknown-linux-gnu-0.3.7": "823cf484b7c79b472b5bb3aea578bafea95a8329a292eb5350283040b7e24141", "s390x-unknown-linux-gnu-0.3.7": "0debd116795ab4b0a207ea459a99feabc3e421f81586de15e72d01bdc036fa80", "x86_64-apple-darwin-0.3.7": "b1c961c1bed427e74ab72950c6debcb078c82aba0ee347183cc27a9fc8aaa43b", "x86_64-pc-windows-msvc-0.3.7": "614136fdd24663104483eac99b62a61e6a22e97d685d7c7238ac5cd2fed9907e", "x86_64-unknown-linux-gnu-0.3.7": "a20b0acf38a673d3464e74b2271dd459b30f8a150a591913aba18328192d1c1b", "x86_64-unknown-linux-musl-0.3.7": "3f8348096f7d9c0a9266c4a821dbc7599ef299983e456b61eb0d5290d8615df8", "aarch64-apple-darwin-0.3.6": "56f5ccae636195b06180ea2af82fee9ade67ab2e0225804e8c82c2444620fb3e", "aarch64-pc-windows-msvc-0.3.6": "13bfb83dc2675820a11d2468b63fcd3d83800aa546c3e21d00ccf5e80af49b96", "aarch64-unknown-linux-gnu-0.3.6": "86835eb20d531b874729180a403c5b0cd8f804a3ff060af37c70ca9ee99ed08d", "aarch64-unknown-linux-musl-0.3.6": "e509345f5718026d6327f79aa9ac147cd8c13b014db22bd7c3d0eedb3d5c8f36", "armv7-unknown-linux-gnueabihf-0.3.6": "231867d6ac0afce85e8f74dab5f867008770deb7a5ddbb254916549dc90db36c", "armv7-unknown-linux-musleabihf-0.3.6": "17b9e0eac027777fdd365a89baaf8403c40ebc8c2fd709d07ea6a6ec5f064123", "i686-pc-windows-msvc-0.3.6": "b70dfce4ad815a793d17dc27194528ae88dcdb6a7e31ebc386fb68bffd04f2e1", "i686-unknown-linux-gnu-0.3.6": "ea3ae5759505b8813bfac77dffddf520b08e95feb74afae85ad31e0fe1526a2c", "i686-unknown-linux-musl-0.3.6": "ff1476f2a13cc8c7699c66d3b610c635a68216c182c4586b8408b597970800c8", "powerpc64-unknown-linux-gnu-0.3.6": "e4841ec178c121db10abd7b54391e4069275737fc8091a5659e3b0402fc9551a", "powerpc64le-unknown-linux-gnu-0.3.6": "ab377703596faa32832f281f5859db0079de6a7c8a6cb56085b9a309f710e9fa", "s390x-unknown-linux-gnu-0.3.6": "fe784f8742a7f399ec8eb03daf8c80720295bfb94178bf90ac997850ff87ed54", "x86_64-apple-darwin-0.3.6": "324bf85fac5943e8b034dbd777adc30a70401491dc94fcc29016e8b66905aa5f", "x86_64-pc-windows-msvc-0.3.6": "bfe5d3af54d2d12e8487e397e25505acb89cfb64c08ab44c0cc5a09b9276a1ac", "x86_64-unknown-linux-gnu-0.3.6": "d3e58883a62a08baa5c39bdd5136cac0535c0e762cf61ed4e2e04e82f8635cba", "x86_64-unknown-linux-musl-0.3.6": "35de676080e6c612006c02f09acbbd0e648ae99cc00a3e9e19a4aa123ffb056a", "aarch64-apple-darwin-0.3.5": "75522512ed44a554968483e205f3c7260b7e05c90462a9edf69c8f0d737ddf1d", "aarch64-pc-windows-msvc-0.3.5": "d0fc509148bf343681bf66cfd76b87b4a9465c4c1a4fb466da59671354857def", "aarch64-unknown-linux-gnu-0.3.5": "34035b7cc119cdc16d6cc997b0d4cd1a5c6408aad6b25bf300be45b6676e1082", "aarch64-unknown-linux-musl-0.3.5": "3f78aba76cad5dddd62918447f56dff1e845077e390c7658f6bcb6c9f42a398c", "armv7-unknown-linux-gnueabihf-0.3.5": "8632f1b93d64e258207409675dec8e99e4c7a3d3068dec9ff16773c0cc99fa56", "armv7-unknown-linux-musleabihf-0.3.5": "97f68e13fced4b8b2f5edbe74651615f390603df1670d2156d9a0ae51d7b90cf", "i686-pc-windows-msvc-0.3.5": "11d0e106d8d51ffc964c4e2512ece8b39f0966bb1c4d0528c4bff2fac7d1d7a3", "i686-unknown-linux-gnu-0.3.5": "6f782c1e5245920150de91ae0904d8ec78980b109c6624edd6e5fc9bd03e4132", "i686-unknown-linux-musl-0.3.5": "add137e5ac19415992bdfb7c2aa2e92d748260c3e2d2ca4d7243b3ddbc13b202", "powerpc64-unknown-linux-gnu-0.3.5": "d1dbc737375d49c70dda768cb3dde8b34d77ec231e7400f8d67f14490817dd43", "powerpc64le-unknown-linux-gnu-0.3.5": "30beb1e287f996bb62be7e411fe3b24f91abafbffd5be5bba9f5b1000b977fcc", "s390x-unknown-linux-gnu-0.3.5": "c6d35272d16863471affb0a4633b490a28771e71deeed06d109a524609ca2070", "x86_64-apple-darwin-0.3.5": "2cedc2b72f82351c9ae4dc4e2dcd7c1d416744ff37a1e5c2f53a09363fa0b314", "x86_64-pc-windows-msvc-0.3.5": "a9b3c3cf1125667dc95aff6d24278aeebdb25c63bc6a2f138a93b4f9226642be", "x86_64-unknown-linux-gnu-0.3.5": "4326f4121b7fb2f4adbffcc6d07a595f5869a95b70793b70c16951715dc601de", "x86_64-unknown-linux-musl-0.3.5": "b35ef7f59251c0bffef60f20e7a7cb0b28ea3a565014c822e424ede27a74d6be", "aarch64-apple-darwin-0.3.4": "426baf89977fea38c9b5b924233316c85edc6f655e3ecd39ef00aa745e70efea", "aarch64-pc-windows-msvc-0.3.4": "068b67ee168da54a7f6b839fac8b36ec03739c8cc8e87cf50a01721d30cfe96c", "aarch64-unknown-linux-gnu-0.3.4": "e6e0d1716d9af14bed5239d3a8e87f28a3084fc476086163acde72fd1c9ace76", "aarch64-unknown-linux-musl-0.3.4": "10ee98b98ecd44a5b4ec046b24b08aa0bc111386d42c3adaf1035018e48cc9ab", "armv7-unknown-linux-gnueabihf-0.3.4": "c9638762dbe2b5764ec6b0d208f671b0855d90e33d672fbd94768ba9865ab5eb", "armv7-unknown-linux-musleabihf-0.3.4": "98ea50889b44b3311e5b994611db6dd4550e6acc185054685f66499bb3c3b2ee", "i686-pc-windows-msvc-0.3.4": "a561b37ebc2978e78d9efccd6972015a2ee1c31b9d38f3c020fa96c538e78631", "i686-unknown-linux-gnu-0.3.4": "b2fd2366d9fbdb6df9bc9464df93d869d0452d2b80a3d50ea4f91a4b86c31ee6", "i686-unknown-linux-musl-0.3.4": "674ce8f665c22ba15e80968a73856532104c13a0c77f5e4aa07684c762a1766f", "powerpc64-unknown-linux-gnu-0.3.4": "f7c2544ed4ba5564ef6b2b090d686ba4c508210c46ee6a2f3fb36ddd20f75fcb", "powerpc64le-unknown-linux-gnu-0.3.4": "4935fb13e54ea3314a50b82b8a7edcc752b781fddf2ce3042fd6e5916427b5e5", "s390x-unknown-linux-gnu-0.3.4": "1a900458d13a05208e60350804918d3f8086a5172a8cc9ef1238a69ad8f44416", "x86_64-apple-darwin-0.3.4": "4c4732b12e1f65f6e5d3b9f5374bd5433f6673f838ca7656c9aafd490718fa2a", "x86_64-pc-windows-msvc-0.3.4": "4e0d1fe9155fcd335e33a3b75b60282778c88eb282634bff2d4351d0b5ddd090", "x86_64-unknown-linux-gnu-0.3.4": "245ad3647fd12505810243d9f5b4efe0f99c8137bc5b8a65503f6062a251733f", "x86_64-unknown-linux-musl-0.3.4": "5a26f8c7b3fb08c617cb38b9091b7be911d85b1f71076e2b7440cabf0bce1dda", "aarch64-apple-darwin-0.3.3": "6ba8041b6193420b4c77c43cbfa95944e98f00a10e1cb33ac6f41fb404b1a37d", "aarch64-pc-windows-msvc-0.3.3": "a5acb285ca294e2df999c3606aa75841f3e36b0d74d7666936c9d35f821eaa87", "aarch64-unknown-linux-gnu-0.3.3": "3e5ff52c7a737118601febd37501e84641631f511c6025a9c5d6ada3bedf44ea", "aarch64-unknown-linux-musl-0.3.3": "6e5b6291d39169306e2990e33c074688533b5995927c7b4e47c737e093eb52a8", "armv7-unknown-linux-gnueabihf-0.3.3": "b0c8e87a3cd1696d68067d04c6efd91782159aa3347f96782b88914dd6529196", "armv7-unknown-linux-musleabihf-0.3.3": "9306b331116ae448f3d0ea157d5cb6ee17adad4982649a68b0096d07de255ffe", "i686-pc-windows-msvc-0.3.3": "2b75c542ee71e485e59971d254329e14d67e5cb62513228a75b59806a54b6ac2", "i686-unknown-linux-gnu-0.3.3": "2f70a4b8786e874be853141905400eaa317d6a0efdf599d790ebb309c0e5fe42", "i686-unknown-linux-musl-0.3.3": "b15a93fb75dc6c18e59b62f516b34b4519fc1f67dd91ead60f06f149ae9eb708", "powerpc64-unknown-linux-gnu-0.3.3": "380d9bd37f94f16bb7370bd83613310862a00950c9fa24a81647fc7fbc70e10a", "powerpc64le-unknown-linux-gnu-0.3.3": "60a8386b1a2731e32176511e4d0e606fc864ef7932a375e2b8680323b676d5b7", "s390x-unknown-linux-gnu-0.3.3": "50f3369e186119ee575a12b528860962686a744b84abb0579b12221f0404878a", "x86_64-apple-darwin-0.3.3": "fa5745d9222104e80d2a61e8eaf7d6431474d98aa2556124d653941c77c58590", "x86_64-pc-windows-msvc-0.3.3": "ecee1d7db8fc22eda0a540f3526ce5e59f27fe0fd4a227aa018bfc83648685c9", "x86_64-unknown-linux-gnu-0.3.3": "14eeda2f9557a3bd59b565af2f0c608ae5c22902dc8479706ad1a29eeaa3d2ef", "x86_64-unknown-linux-musl-0.3.3": "e254abce3b9c10ea37c2281bd9e1f90126893b49700c3d0c443ab69f7510aca4", "aarch64-apple-darwin-0.3.2": "ec3cbe618770a0f65015551e80fd69c635fd3f66e3c22364c085486ba5e9d200", "aarch64-pc-windows-msvc-0.3.2": "3687845a213cc7b32c9696ec54cb53f28fa7080a6174cdb1ee0f5400869481b3", "aarch64-unknown-linux-gnu-0.3.2": "8215fb1c61d59e0a2b5f182bbf9e76e5f2efcc8ca924ce4f09ccc795a3b490f9", "aarch64-unknown-linux-musl-0.3.2": "f56093b24559262bbf92294e3c8806b640e998908125b9f090990bbbc9633d90", "armv7-unknown-linux-gnueabihf-0.3.2": "1dfc2fbf49a165bee7e9dafe6c63f7db20a6a2058087ca9a33461e110c08c6f3", "armv7-unknown-linux-musleabihf-0.3.2": "1acd463edaf13e59e9308df12b45fbce9fb6e7b0a498dcc1f2f272bc85e6d9c5", "i686-pc-windows-msvc-0.3.2": "4798036672290dcf7b117362c51ce7e05540a4f53851162fa5099aafb16a78a0", "i686-unknown-linux-gnu-0.3.2": "0d8abc3e352bbabe051262b14275d4d26f0415fcfa608a4c2b3adf06a1ee0f5a", "i686-unknown-linux-musl-0.3.2": "9e76246870d8f114eeabb40b472432ff582f3968c29445480ffe7e069b2e2e0e", "powerpc64-unknown-linux-gnu-0.3.2": "f75039c3b5e0b8d73b2c86ac103b03905a27a5eb712111d4e0630f63fa8e3ba2", "powerpc64le-unknown-linux-gnu-0.3.2": "404b7aeb833ac212af399d7a2ff39a0666c32c2415d125762ebe27d8ee3e26a0", "s390x-unknown-linux-gnu-0.3.2": "36d6fc1c8eae17dbb6924ee6ddf6b4ba38a38a76de5dbde98326c63384640870", "x86_64-apple-darwin-0.3.2": "0507f56735771ede50887afbd2ef153da2a9d3e993c538f3be7348f34342afb9", "x86_64-pc-windows-msvc-0.3.2": "e471bd3b2f003ce9971cab86e5ca7196554e15e94abb0de5d981bbd1733d63f5", "x86_64-unknown-linux-gnu-0.3.2": "f6e99d28102ee123b6b81fec8c6f61fa71454b6123df279242d01fd9aa22c132", "x86_64-unknown-linux-musl-0.3.2": "f68345f02ed61a643182c671ce59ca09e88abfc8ff4423e9f691b0b49cd2fbc9", "aarch64-apple-darwin-0.3.1": "ce3bb4cc63bb3047b3e572ceed11aa2db88812d5f5119c7cdd85d40cc04f0ccd", "aarch64-pc-windows-msvc-0.3.1": "9a64f79ddc3e50b8aa74ac404f50326b1e97d0d4aa3c8150540c6e956636b2fc", "aarch64-unknown-linux-gnu-0.3.1": "81e58026681a41b521eae6e00045d28f038e029d2374af6c1bea03bd985988a8", "aarch64-unknown-linux-musl-0.3.1": "10458af92b3b873773c687bdd9861e811084a9ae89f64ef1dd116e7705d3ef86", "armv7-unknown-linux-gnueabihf-0.3.1": "4aac7e01f4caf8b9556e7f7d9e4b626474b2bed61409b648bab8dcd1a9e842b1", "armv7-unknown-linux-musleabihf-0.3.1": "24a4332417d06f96236f91d25a6a74f05f17f8dbb4aa651281cb74da1c0dd693", "i686-pc-windows-msvc-0.3.1": "07c0971ea53bf45044494f8dafacb1a45185650c7970db2733fd726ca6d197c1", "i686-unknown-linux-gnu-0.3.1": "d853fde37483d9621144b59384b0928077b591fc95ca29f8a0cd545edf6fe805", "i686-unknown-linux-musl-0.3.1": "a399d777999c633d4234beb425cb3699d960f5db8f8457b981927abd26326f7c", "powerpc64-unknown-linux-gnu-0.3.1": "3f56e8ab7d23db79b5b8841db56ab398e406e21a4015f08f5cfc75a2e7d1af38", "powerpc64le-unknown-linux-gnu-0.3.1": "212896cc3567e28c91bd7a8e6e168f667dae7c7e82be673a3bb561ea06ea1ede", "s390x-unknown-linux-gnu-0.3.1": "4983aa2555dfe03a47bc4da37edb589c4d387a04099ff821e327d6be087f518b", "x86_64-apple-darwin-0.3.1": "0b0c00e69b89a8de2f732af45c94275cbb51d83aa29e651b23b694fd136f06f7", "x86_64-pc-windows-msvc-0.3.1": "deb49bfdcb8e6b96efa38031b30c79869b49a67a66ef53c9662ec888a7564979", "x86_64-unknown-linux-gnu-0.3.1": "f3dec9e26afec87c39375e0ee73da9285a74d060f75418e03f3b65ba46f361cd", "x86_64-unknown-linux-musl-0.3.1": "d259b0b17651684f69b087e01c5fcdae1f223b6ef9d5d451dd591335b53f4d9d", "aarch64-apple-darwin-0.3.0": "81bb7124ea94a4d17d664fb87367b057dd5df5602a304afed8d481398856b93a", "aarch64-pc-windows-msvc-0.3.0": "c38e93d6c5127ca7cb147af78e1faae0c3746837d7819e7d4f4e9b505dc28c86", "aarch64-unknown-linux-gnu-0.3.0": "82b5e72421b5229b730356007003424e261faf516c1d574198a1e152c6def7a6", "aarch64-unknown-linux-musl-0.3.0": "4ab59fff8c881d4e8a9ca3a3cffa87f199757e68977248e5dfcf16b6072f8cf3", "armv7-unknown-linux-gnueabihf-0.3.0": "8494eddd0fafd58ea04a558f366256775b52558bb778d6da410cb6ed30de8413", "armv7-unknown-linux-musleabihf-0.3.0": "0cbe3cc6aca1f902206010830fb3a7cef9fb6ea644be17c0078bb165a791be4d", "i686-pc-windows-msvc-0.3.0": "217e729410d6aafddd9df856ab1dfdf0e130c79afb39a0a671f3d1035e79edac", "i686-unknown-linux-gnu-0.3.0": "24a1ce3dc4feeec4c0d6225bf839cf1ebafe6909a7e5fc2a30a47252ee98671e", "i686-unknown-linux-musl-0.3.0": "56d7654771b4d56205a63ba703d0a12fb752bdf816886a6e35fa25f07367a86f", "powerpc64-unknown-linux-gnu-0.3.0": "d5874b3eb0f12ff3d67afb3a0fe13695d0a70c87bf8c5160b770cb4229724098", "powerpc64le-unknown-linux-gnu-0.3.0": "06f0d5d5bb125e341c6a7aa56d3758e5b5082fc564b8796c0d3f3ccd5e770621", "s390x-unknown-linux-gnu-0.3.0": "2507fac133db7fe90efdab334c294a78d6a0c2a636c10470c353a779caaac662", "x86_64-apple-darwin-0.3.0": "4afe6f466a26fae0ab9df915420deb3bc86195b7e3dedc9b263bef4cdeb6bdf4", "x86_64-pc-windows-msvc-0.3.0": "e28900051a3b835d0e11d86f9139ef484db274b5b8ed2294ddbce3d68caa2205", "x86_64-unknown-linux-gnu-0.3.0": "0201216ec3f54ddeaed8d301fde322963588ac1d45813e8eca4e660175930aba", "x86_64-unknown-linux-musl-0.3.0": "ce8c2a429b634362267933c7cdf8b14dc6dbe939625fe7e1dc62eee264300119", "aarch64-apple-darwin-0.2.2": "21454a77f0a5ff8ed23a43327f6de9c2f9f6bab1352ebe87fc03866889fa7fae", "aarch64-pc-windows-msvc-0.2.2": "ab35fd6fc5886cf63541dec00172f41fa03242e53c6c5f1213c3a09d9c9a6c97", "aarch64-unknown-linux-gnu-0.2.2": "0bd2932f652f72386a0ab837a2cf2933c21883fbf25294caf881f667927c39c9", "aarch64-unknown-linux-musl-0.2.2": "e73a37f41acf4a4f44cdb9b587316f0f9eb83b51c3c134d1401501e3f8d65dee", "armv7-unknown-linux-gnueabihf-0.2.2": "e1441779b1996142f081a678cfd93f32bab43f71f62a01103804a3500f747e52", "armv7-unknown-linux-musleabihf-0.2.2": "09a43e71e601b74b73fa76031c969e2d2e7e0f0103f9c64db8dcdfb3274747b4", "i686-pc-windows-msvc-0.2.2": "3681f8e404982bc92ae63b8ee85d1f14b378a0fabc96be18dea6a3281bbb46a0", "i686-unknown-linux-gnu-0.2.2": "39f9b9c9ae4d84ce69c011d72b8870831897888b7d79233bc0710fc374ae59e7", "i686-unknown-linux-musl-0.2.2": "caadcab0d70e1302c8919e85d635795109cddaada84904a7f4e63d4d5ba2f9df", "powerpc64-unknown-linux-gnu-0.2.2": "70f2370c32f8d2354a03d380d31fdf9bbbeace401f06089b2cb82d84919a6882", "powerpc64le-unknown-linux-gnu-0.2.2": "e185d9332ea8633ad8aa79e35d44d3cc2f24e642441db102c5b5a2f8dcfccc03", "s390x-unknown-linux-gnu-0.2.2": "141e52c9058f5acf6189c06f9758a9eb0bacde7b4b4915bd9ef752a63a03c924", "x86_64-apple-darwin-0.2.2": "798a2028a783f10f21f11eb59763eabcff9961d4302cdcc37d186ab9f864ca82", "x86_64-pc-windows-msvc-0.2.2": "e36d3126da1161d3c6228db215cc8fdf315a7503fe09be54004f226019aa5b2a", "x86_64-unknown-linux-gnu-0.2.2": "86089b6e8654c6ede8fd00766429eb31b18bc2cc56241935d1e3e2df84fafea3", "x86_64-unknown-linux-musl-0.2.2": "044e4dbd46acc12de78a144c24fd9af86003eaba28e83244546d85076a9c7b04", "aarch64-apple-darwin-0.2.1": "72408f7553884f8b045201dcf31e40b709667758620e020d5957ce7e664be3b1", "aarch64-pc-windows-msvc-0.2.1": "20fe77caa371c9b57e5f1d07dc88a8a38f9797bbfb8b32084eaf5cf27cfa554f", "aarch64-unknown-linux-gnu-0.2.1": "ac8108bc06f8b58b8421e6c8cd438b8a5a9cf65c93a5402f21620cb27cef1862", "aarch64-unknown-linux-musl-0.2.1": "466cc9400419ba725d3c2ef8e5f581810caf6e9de0a08332bd7134d65c7f8012", "armv7-unknown-linux-gnueabihf-0.2.1": "7b5acc700910ad6056cecb20e32267f4d9bf64b63c5dd953d41e1dae4411175a", "armv7-unknown-linux-musleabihf-0.2.1": "09291f147dd782abd8e0166c1c27e882075d8cc1d0e75c111c58e66deda36e6e", "i686-pc-windows-msvc-0.2.1": "b38b5f9bce685ddc68674aa8c9923630c87ec65038201d8a9d316eecaa84b48b", "i686-unknown-linux-gnu-0.2.1": "deed96b01ed1e4d7fe258dd5c1a333acf6e9d7b87c94a95a150c14584ed3de4b", "i686-unknown-linux-musl-0.2.1": "5d3f0bc6562fc979b75c01defa75ddd4b40946ebb2dc98f16093091f3c04790a", "powerpc64-unknown-linux-gnu-0.2.1": "e1766285b262b927ca56c0b77396721225c3687081d8f3592ffd1e1adc00d346", "powerpc64le-unknown-linux-gnu-0.2.1": "ab641f4f5a00d60f96bde034beb76d4e846c87c5aba03c22f36a37bbefb8135c", "s390x-unknown-linux-gnu-0.2.1": "aad03ad62b2a231ffa789adfb4445576dd5eba1ab6cd1d8080df5f4e22f71c13", "x86_64-apple-darwin-0.2.1": "9942ec087791da9f95c122e3af47a7b624ca0310ca38437380097f24edceb278", "x86_64-pc-windows-msvc-0.2.1": "60e989abb4080d1509bdb4314439e21b12c7d4d7bdb31b6f4af6933df75837ec", "x86_64-unknown-linux-gnu-0.2.1": "6ee2900305a7a18f9936498f8293a0c1a3fe8c32bf7202394b3d4896b2d676b1", "x86_64-unknown-linux-musl-0.2.1": "2d396fe309cf8180d17da39bee7bc80156326b93013c5973d8f0fbbb2dd591ea", "aarch64-apple-darwin-0.2.0": "5cba3caa65bdb030d1625e39a7e35ca497f63865dce88b075f2ce9bec55ff524", "aarch64-pc-windows-msvc-0.2.0": "1efbd2cc3b444793bbb3d1c37b798726cab237792cdfa30cbf6d4677ff5e34f9", "aarch64-unknown-linux-gnu-0.2.0": "23f395cc446448d63f9bd40da45c97d607a16ca1bc9ee1ccdb89476a898d0e3e", "aarch64-unknown-linux-musl-0.2.0": "a029eaf8e41dcea305d9e362d6078de215c7c59026182a61744d6d3cb7d9e4d1", "armv7-unknown-linux-gnueabihf-0.2.0": "17b6a75a6df006e7455668cbe5cd6858c7f0accd9ec84de2f10d4a5b5b918fee", "armv7-unknown-linux-musleabihf-0.2.0": "6f7c1e0d6493ed03c0979f5894620b3ca4c053864b13eac813857a9ab4e3fd05", "i686-pc-windows-msvc-0.2.0": "38eab62232f65c2c8e98b1eff59e046101c9439d98da3db5c12999330c837646", "i686-unknown-linux-gnu-0.2.0": "520e5ab03ac4258de1be5bb9fb0c43b6d137e3406cb0c00a94ada222c2119e0d", "i686-unknown-linux-musl-0.2.0": "15ef48c783f909f7a2884b48d1da517e2ef009d133822668d83f89b68ee66f91", "powerpc64-unknown-linux-gnu-0.2.0": "cbebc77df45ffd449d6a102bd7b7a217a22202d109e3c75e97be8a7fffc079c4", "powerpc64le-unknown-linux-gnu-0.2.0": "3e681c78a7305f128ebff2a32ce720919e7a2fdfde1707bacf04f98b880578e8", "s390x-unknown-linux-gnu-0.2.0": "c82588dfe386a9cf932fe7b9309179cca7adb72cf72901942f17e6dbf936f16c", "x86_64-apple-darwin-0.2.0": "b4b381ee597651c8c2271ce47697c7d6bf8918cbc81356bf666547f843dbf4b1", "x86_64-pc-windows-msvc-0.2.0": "de961bcb3f72c05a95ee7831437cbcdfc38e4c99b7e96cfc184b98cbf5be1a2c", "x86_64-unknown-linux-gnu-0.2.0": "3e8dedc62e97201b5c127088bfbf8ff45dde132fd6493818f15fcd30165604a7", "x86_64-unknown-linux-musl-0.2.0": "d8417c5454d631e39b0ef4d787a2dd481d3a48b7a63fc82a77f5ae507c5b7ab5", "aarch64-apple-darwin-0.1.15": "373c648d693ddaf4f1936a05d3093aabd08553f585c3c3afbbdba41d16b70032", "aarch64-pc-windows-msvc-0.1.15": "aaa442d3e1e91b63f1a90e327eab7a76543c4d3883289fecd6b907a24e181fef", "aarch64-unknown-linux-gnu-0.1.15": "356c91adb4aaa8c3c5e66e388076eff978f3b3ca357d9bf3ace977ee7658b356", "aarch64-unknown-linux-musl-0.1.15": "e9ed3c353c4f2b801ed4d21fee2b6159883ad777e959fbbad0b2d2b22e1974c7", "armv7-unknown-linux-gnueabihf-0.1.15": "cf542bae53ead4d5289521599ce5d2a9cc28e6a8baa9725f230fa25d40940717", "armv7-unknown-linux-musleabihf-0.1.15": "76e87ec229eccbe1e0ddbbe390357113fe67c872725e2090a31937f3e55a5519", "i686-pc-windows-msvc-0.1.15": "1cbb7ef56a63b5adba755d9f5e4b978f5526feda93b9f0583b8c46f58eb78763", "i686-unknown-linux-gnu-0.1.15": "3c9154357e8651ae5fa75c68e3d4118d0a5e910adec4419792f5acb98c835545", "i686-unknown-linux-musl-0.1.15": "1fc1cd2deb1b41ca7695aa5f08139c2d62ca4b3327091f55c910b3b19176eca7", "powerpc64-unknown-linux-gnu-0.1.15": "e5ee6441136f3cdfffddd16e5c5e829f4ec6817d967a4d8ce2cc197d8816b5a0", "powerpc64le-unknown-linux-gnu-0.1.15": "21d641b5e19bcb9ac3ae140a92496c9bae952318e1fe1530f2f4101a74e0656b", "s390x-unknown-linux-gnu-0.1.15": "0052d623df251cabe9edd5cd157dda50fe4a4b70a54f39ae090e647a1c845853", "x86_64-apple-darwin-0.1.15": "6d006dc427a74cba930717297b0c472856a2be4cfc37cd04309895c11329dc68", "x86_64-pc-windows-msvc-0.1.15": "c4a35aafab97159b7e497c1ef40696fa5d7f78b39417df6ca62d6d6d5f645e3b", "x86_64-unknown-linux-gnu-0.1.15": "0362338e9b54df378f8adff0e3b89f526c9a022980fa2f214586c7f63ef21527", "x86_64-unknown-linux-musl-0.1.15": "d7389b9743b0b909c364d11bba94d13302171d751430b58c13dcdf248e924276", "aarch64-apple-darwin-0.1.14": "6b366c507a93f03414349470566dd5884070d4cdcd0aace29f5a09e631c0dad6", "aarch64-pc-windows-msvc-0.1.14": "a938c4bf25c846a4c4b249f61bd98954d6fd87f03e6b719dd961acd88f9c3e79", "aarch64-unknown-linux-gnu-0.1.14": "804abcb99b277b23ccbbecf1785406670b04d0fa6ef95b6817152f5e38e6c58d", "aarch64-unknown-linux-musl-0.1.14": "0a7c12636fdf27e3acaf9a4de4c87ae45195ac175da464a8c6da49d7b640f983", "armv7-unknown-linux-gnueabihf-0.1.14": "de70e5c8ec45369ee51de1957cdb457cae893d7397bdb48470713d091b41d8d3", "armv7-unknown-linux-musleabihf-0.1.14": "c837b20ebda16f191447d1d3daef0452958673daea8161490e63fbaf9d1f8efe", "i686-pc-windows-msvc-0.1.14": "f137af73a29ca9b9f826e2d5cab9c985b61f07215c21854ff06fd1d6bfdd174f", "i686-unknown-linux-gnu-0.1.14": "76e86b23d97ac90a4c516e69fe4eed371651b5aebd30fc93bcc4d22e269eabc6", "i686-unknown-linux-musl-0.1.14": "7d97bfef6e4b4cdd00b066ca8f475435a81fabcbaa828c4a62a4fc152eaa13fe", "powerpc64-unknown-linux-gnu-0.1.14": "d8ac92ce72c97d37f9bef3c3106835d88893405711a67a77649b75c69159b5f6", "powerpc64le-unknown-linux-gnu-0.1.14": "efa774e40556fb2905b343565b5b28f9c21968336ad0b29f8f5c9337cc12709c", "s390x-unknown-linux-gnu-0.1.14": "47a9e3d5a5cde6acaf8169c7aa80524ae5ee75d968d4a72ed8c1a66b55e35eff", "x86_64-apple-darwin-0.1.14": "71b492fdae253ee81098333149bed96539d7e0feeebc72def1aeb18ba5657d9a", "x86_64-pc-windows-msvc-0.1.14": "f57b782774e7d8adc206688fe7df11e0de955ecb50230900467151ebe20b373e", "x86_64-unknown-linux-gnu-0.1.14": "c3d50482288db7db09445be5bea7bc2507f291b298d74d4fc01b99eb6794301c", "x86_64-unknown-linux-musl-0.1.14": "5dcc04a1ac5ee38562b7e92e0152f7bf0918f13c5c3ed6fdf6f82a110a0b3bee", "aarch64-apple-darwin-0.1.13": "663a05918010a5975574efde91b55efed054aca2c08e547f71eea206d5977039", "aarch64-pc-windows-msvc-0.1.13": "2920aa60da39e966c2b49b2d851d92cbe22a0e0030db85599fc35c5ea232f316", "aarch64-unknown-linux-gnu-0.1.13": "0a2f4cb14a38282a78a20a452d4f0c58682f9111f2e3b8b2a536290ecc3d9602", "aarch64-unknown-linux-musl-0.1.13": "670c24d1f7529ab49573d6c6a742f283fc9977766c5504ba3e7444058ec9a64d", "armv7-unknown-linux-gnueabihf-0.1.13": "9eb8f34410f5c23ff06d1ce9e697cc8ee875ae9af197354887a06e877f641ba1", "armv7-unknown-linux-musleabihf-0.1.13": "cb5237a46f3b60287e0e8e0a9093d69883dfedb71e2cf5c148186410139b6fc5", "i686-pc-windows-msvc-0.1.13": "0c1dc1f3e52e618246c489d306bea596c2697106a1ae3dda0bbafe9688517fc2", "i686-unknown-linux-gnu-0.1.13": "e5f7022b4c3b74ce65739781cfa11a18060cfb39fe071657a71c6d259983d5f4", "i686-unknown-linux-musl-0.1.13": "cf2912870705b33e138bdff8456c8dd84ecef7981a026dd5c4ea40419562089b", "powerpc64-unknown-linux-gnu-0.1.13": "57afa5c3c84a4ad34bc16b6357594756720b5b771d3932738a7842597d31b991", "powerpc64le-unknown-linux-gnu-0.1.13": "30f812de4cf348f9ac98cce68dc7e429f297794c2bdf7d76d1fb75cefd4486d6", "s390x-unknown-linux-gnu-0.1.13": "f5ca48685db30c8f12e3a0a57168c5c5ad86f144760eadcda402696569d60caa", "x86_64-apple-darwin-0.1.13": "f9578fc806da4b484f8d21eea00c177ae30e075bbe544c80ff923116222826a4", "x86_64-pc-windows-msvc-0.1.13": "281ac3ac6b33367766313589c6fa0afce073a3cfb0eead36bf7e2fea4cbe797d", "x86_64-unknown-linux-gnu-0.1.13": "40025f4e3fc22f25efb827c49e0931bda03743623fe859cf55433336f2cc7a73", "x86_64-unknown-linux-musl-0.1.13": "7d148fa642a35693ad9849973426d6490fd22f85049963bb35913af9ad0d4857", "aarch64-apple-darwin-0.1.12": "a75aee9880c082199591161956fdfa7a365dc229b52a593dba9b791cecd9c180", "aarch64-pc-windows-msvc-0.1.12": "7a5b061d0165ab9dd0d7112158e17bcf8d83c71cf4db72152273846889cc4978", "aarch64-unknown-linux-gnu-0.1.12": "35bd5256dd61ae22829b5883482f66c892c8b674060095996098029defff0b46", "aarch64-unknown-linux-musl-0.1.12": "2d4b0a79c11b9e92873bb1b4c733c125a7550c119f082e5731b0dfaf56ca1d39", "armv7-unknown-linux-gnueabihf-0.1.12": "fbc240170bf82cd65a13ed4ceccf5b765e33897e04e65811144cdaa960716d18", "armv7-unknown-linux-musleabihf-0.1.12": "ee1b8055a63a19c559954ba27a0e880acb74b3c259d1826de0dc569418e11d97", "i686-pc-windows-msvc-0.1.12": "88a15fb7265646cccb996a59fb802ac70660e4f12ea686f629c6b0f545cf3d04", "i686-unknown-linux-gnu-0.1.12": "185cacb758d7e13af21faafa5da690381f945a55366cdc02c7199a5e06ab961c", "i686-unknown-linux-musl-0.1.12": "8cdc5dd8cacb559b1d31a219fcde444bda3ffff491c4cc411583f372e8c64846", "powerpc64-unknown-linux-gnu-0.1.12": "03e63fda46573444f6c98a1ab142f89703da3dbe0d473a8405eeb322b9f3a624", "powerpc64le-unknown-linux-gnu-0.1.12": "fc47e423edc7a75090e21a8c1c89acc91d9bc320b5dc4d437f9617ea21fc5d7e", "s390x-unknown-linux-gnu-0.1.12": "edf3743951dc63d8f4271d74e929c8c592a5e50063f24c67efd2b33c7247f772", "x86_64-apple-darwin-0.1.12": "fb37ee0c3e3adc3bcb606f4fc3fe698b308417f576c95bebd976055d65d4054d", "x86_64-pc-windows-msvc-0.1.12": "255a7e8a84cf33cc495653b78768c733af3f7d7f4c698df80180eb60b537c3f3", "x86_64-unknown-linux-gnu-0.1.12": "7d05458e08c62324d1cb73ea4d3e7c6454300baa6e6d30d15c320a38acf44c86", "x86_64-unknown-linux-musl-0.1.12": "d34f782a367d95eb1ee5096c2611e44298351e5f3c60ef119fdc0219bdbf0363", "aarch64-apple-darwin-0.1.11": "8d43e6ef541ae114f11699d32c4a6f42fe87b7cc72c471153fbf75e292b3ee48", "aarch64-pc-windows-msvc-0.1.11": "95d29dd99b0d6c4525f0d6a59fa07cccf4b3e06a700f499a63d8e9b5ffa53a2c", "aarch64-unknown-linux-gnu-0.1.11": "8063ee2d6bbfa7e9b83b97d69b2bc571f3caf198732ef16fccef10c6faf818f0", "aarch64-unknown-linux-musl-0.1.11": "ba0ec9a7649e0eac6f34ea0424f973cbf27d1df46c38986a5d48ec9410611371", "armv7-unknown-linux-gnueabihf-0.1.11": "f4ce91365b0c2f11e3c029eb9383bdb711086582312f8df28e28a38b64a06fd1", "armv7-unknown-linux-musleabihf-0.1.11": "1c520b5425ea18354e798d889504e36e818f3f90d23a939d10ffd8e4fde5b955", "i686-pc-windows-msvc-0.1.11": "0e60c445c50123ec9460824c3e169967a9bdcea8b3481429a007c75de8895ae4", "i686-unknown-linux-gnu-0.1.11": "e3cc0fe8e92e91f22b545a92db2a4b766e32865553dd6b381e8a424b78071a6b", "i686-unknown-linux-musl-0.1.11": "bf8c78499196254d2fc7af15cb806bc468d2bdd22c65e523893ddee5838d82ee", "powerpc64-unknown-linux-gnu-0.1.11": "216f3799f5ca9144c1ddbc60b6938c5df3a4b62d0cde2b298e500544cf22f549", "powerpc64le-unknown-linux-gnu-0.1.11": "5c81f17ce3bccc7d77acabb78669a656f45a1e3061bdb8abbe7a66dbcb646611", "s390x-unknown-linux-gnu-0.1.11": "e974d1468bb0b6918cfe9f0f32088e8061be454d7d6dd4c2232efe96e83b8b89", "x86_64-apple-darwin-0.1.11": "dc523dc44112a05fa68819d214172725e1c0bb049642b75e90d4445fa8f31fba", "x86_64-pc-windows-msvc-0.1.11": "bdf9beb2e90028bd5113bc6bf8b450629503805fbb71d32a010785552001807b", "x86_64-unknown-linux-gnu-0.1.11": "f1f09d7cd902935c9fe5d632ee3f6dbe4094a2b65c08a076998233e3601dea7a", "x86_64-unknown-linux-musl-0.1.11": "6a67784e655a53ada6ab8dd18e60145428de5753eb6b4b161da418070e0ec47f", "aarch64-apple-darwin-0.1.10": "803d02d7e1029a2a798888f46000ea66e2bba557a82659a616cf8bdd6a1686b1", "aarch64-pc-windows-msvc-0.1.10": "ee89256c59a89379708b5dd1caad1f5969ea785627be8e7736d81d3f59a7d879", "aarch64-unknown-linux-gnu-0.1.10": "7d9aa38ecae1847bbd53ffcf327cbcadb6b32e09fbfc4e8a4a64d901f3a99ec3", "aarch64-unknown-linux-musl-0.1.10": "001730525a2ab68ab93a9f9219fc014278c0d668a9b3f11cac309aa88c4d9881", "armv7-unknown-linux-gnueabihf-0.1.10": "95724b7e1490479dd62b34fb5aded80b7492252e40e147b6e85a32a529a3c77b", "armv7-unknown-linux-musleabihf-0.1.10": "934a7bbfde8f94373f9033030b435dbdd7080d780a4b0609811fcfeaa28930ba", "i686-pc-windows-msvc-0.1.10": "75c2df31cb8721746371609ddb90b32568596a13f701bcc195d690a74439bb05", "i686-unknown-linux-gnu-0.1.10": "467d32ed6bba8e9b450b0eb3cc49dc5ccb98f8446150de65d9ceec7e3d38869a", "i686-unknown-linux-musl-0.1.10": "7ff93eee5ba0502074be4a5cc769a5cdf10c03973778b1a84b944b348026f372", "powerpc64-unknown-linux-gnu-0.1.10": "799e5d2884a4f47e5eb2234363191f7c97d56f94b65536ab746fe4cbf17df42b", "powerpc64le-unknown-linux-gnu-0.1.10": "d058d5098e01bd551b4e629a2c71f0bc8e5eb91f4e760ba20593ab9675bb1ae0", "s390x-unknown-linux-gnu-0.1.10": "019df490ec7f644a6d36a4b472e698fd23437089f1cbd27b6d9081240de4468e", "x86_64-apple-darwin-0.1.10": "05edbd60802941309337382fef917d159d10da45537e5235b383b23e39044fd7", "x86_64-pc-windows-msvc-0.1.10": "6f19bc22a8097f71e95075539252129891f95c68b8ced86661e6b4664696ce64", "x86_64-unknown-linux-gnu-0.1.10": "44a5537cb79f651819a698cdd34eac152824f87db3b44e4bd9513f53b445e067", "x86_64-unknown-linux-musl-0.1.10": "8d68ef0240e6093f7a30c1a73146368ab604468088a95a8f44dff65b0de9ed64", "aarch64-apple-darwin-0.1.9": "3b421f11534b69c9102d3c84535f9dcce47cdbc69b8596a20f0185d15d3d0ed3", "aarch64-pc-windows-msvc-0.1.9": "f8fe75352383cfa777a652b5e43be8c858fd77e6e501954aea5f37761ab3295a", "aarch64-unknown-linux-gnu-0.1.9": "08984edbcde6d9d6f0c7595889f8b331a0e680bba6742edda70433cdb9b35f68", "aarch64-unknown-linux-musl-0.1.9": "e48d9b81d3ff06141fa1ad95240952f1681166e697fdae431bafd7b812e34579", "armv7-unknown-linux-gnueabihf-0.1.9": "4344913b7967a420878dccd7b48c221beae5fc4a6e19ef8e2c723a2a1e351751", "armv7-unknown-linux-musleabihf-0.1.9": "4b95ba15089b26598ae221c6ff4cc1938f15540797af1be84dee97125fec4b16", "i686-pc-windows-msvc-0.1.9": "d41b9df084bd2ada170e9e37cb57d5ad94f29519df08715108fc06b88c2bab0a", "i686-unknown-linux-gnu-0.1.9": "df91b99ea54455a279e5a121f81467f1aef475dfb828208b795424e47be1ad3c", "i686-unknown-linux-musl-0.1.9": "7eeb6bdc08266dcfe0a32a4dbd4e65470c9b1c6fafa0ec432eb0ee932705c18d", "powerpc64-unknown-linux-gnu-0.1.9": "789c332c7acc6ca6cb6e0c9564d1bb4065faf9030d1fe4d432fbae1d8ee40cdf", "powerpc64le-unknown-linux-gnu-0.1.9": "c67c3a15412b3c19f8c025ea1d20f2688bc969ff75b9f19809a66411610cdc29", "s390x-unknown-linux-gnu-0.1.9": "1ba5a6bfffe698e3dc71425980230bf813958e3d17fc4748e68dea720e7406b5", "x86_64-apple-darwin-0.1.9": "2ef7d41d638538fdf64f631869dc84d369ffa97aa099aad7a1a941a5cde98e9e", "x86_64-pc-windows-msvc-0.1.9": "114e57029f966d2a20fc51d1028a349d2da42fb50fd2e1f431ce80c48d9f8d01", "x86_64-unknown-linux-gnu-0.1.9": "29c5de9ef148f59a756b03c1768033ee4eb8de3006764d3347b42b3f57b8b947", "x86_64-unknown-linux-musl-0.1.9": "7a303b3e4c7100debcd0630b44d76b4195ad120df7992135b85a9320f7bed1db", "aarch64-apple-darwin-0.1.8": "bc350c0a2de2da4f4090272facdd4bceb2837db566a3c2973e3f5af9b1c43a4f", "aarch64-pc-windows-msvc-0.1.8": "7a0f62c8c02d75fb83a12d55328aa853f6f90423ca6a6264b69bbcb8f7e97945", "aarch64-unknown-linux-gnu-0.1.8": "b6d41bab6052643ae7eb7151614357704a26e8fb1e141f5108343b45cee0fb89", "aarch64-unknown-linux-musl-0.1.8": "472069d20c4591783493b59af50dfaa278f8bea6c343f63d4543e3589aed6357", "armv7-unknown-linux-gnueabihf-0.1.8": "f5105d421875e0aa32b86c6ef63cd4e26e96d4c96fe011e011dbcc837ac36ae1", "armv7-unknown-linux-musleabihf-0.1.8": "dbd672cd83c3050974a2303e54e671506f5978f21ff9d20f2bac379e648dd31e", "i686-pc-windows-msvc-0.1.8": "ec03ca13aafabe067d4cd54f080efd3d7924f232966767dbdf448d987cfeabeb", "i686-unknown-linux-gnu-0.1.8": "443ce072b13c81c89861a198c6beb2b6b02a540a9a0d9fac751b49e23dc0be2a", "i686-unknown-linux-musl-0.1.8": "f478747e4c53ed52cfaae5c69d0b5b240aa3af30244a1911ca56dabb85ca5b41", "powerpc64-unknown-linux-gnu-0.1.8": "8f98edc2ed4474c76d9f70d2981edaec121f303109840bd3440d939e1f2fdabc", "powerpc64le-unknown-linux-gnu-0.1.8": "25825998f01ab8db6ced28ea95d20bf6320b22714b5992803303c95595f1d29c", "s390x-unknown-linux-gnu-0.1.8": "4132fbdfb0fcf14d28e295c0875b4df299a969346afdac9ad736356a11fb8c9a", "x86_64-apple-darwin-0.1.8": "263d8ec3fd317b47dfefeae84d96e1894f87526f788394df59a0c6b013dac5d7", "x86_64-pc-windows-msvc-0.1.8": "8706e8a644919f827f6e1af30184cfb7f74c675cc7b1a9c61047b0ca5b428dfd", "x86_64-unknown-linux-gnu-0.1.8": "0757bbb9a2a5475f86205bd6bd6a122b4e90df41019e3323eeeedca476f33f27", "x86_64-unknown-linux-musl-0.1.8": "451fdc425fde4075c44c52f9dccf1769e8e88ef8ffbd9f37e03a1886f2138289", "aarch64-apple-darwin-0.1.7": "03b4fe7ab146b8cf5d3ef7c2811132040cdca06953d6259a33f52c7c056c62b8", "aarch64-pc-windows-msvc-0.1.7": "c99c9ba70a61cf816b4a3e2c1ce6fc132a6eb480eaf411c864de4bcf6a121374", "aarch64-unknown-linux-gnu-0.1.7": "eff20f6245e2532e1b086c19b1e98c5e74a451600fbecb33302e760646617947", "aarch64-unknown-linux-musl-0.1.7": "bde2ae383e091e49927a1b0a56e5089cf74c1c9a75ad9518e1f8cc723758f879", "armv7-unknown-linux-gnueabihf-0.1.7": "7fe62d92c3e8e2ff53ab93206ec9ef6a47c56b2e743331f44a9952f45f4b2d95", "armv7-unknown-linux-musleabihf-0.1.7": "f5ce7c7023cb364fc5f227ca836680e9839f2b75af7ffba592ab6eb0b9315758", "i686-pc-windows-msvc-0.1.7": "746aea743e8734e992f40ed2de5afd8fb28a9916dbcfe34736071902532b902a", "i686-unknown-linux-gnu-0.1.7": "5ef0d3da29e32128d07a5848b6366db8a613c844d3bbd9ebb4044e52bc744739", "i686-unknown-linux-musl-0.1.7": "2d016872e418f9e1e0cb95bf7b4b4222671068c1e6e65241faad9a6793e92ae8", "powerpc64-unknown-linux-gnu-0.1.7": "cd771cdec113f25a35300626514a38fd70bf0741b8ab1b9085135cb6e13d0e8e", "powerpc64le-unknown-linux-gnu-0.1.7": "44260ca3bbb579e0f18cb103eff4b4e0373feb2ddb619926bac0b10429e3671a", "s390x-unknown-linux-gnu-0.1.7": "b98b3f3f71f870033be9fffafa4921b7a65a051085bf135cd3d36645acfca24c", "x86_64-apple-darwin-0.1.7": "4daa04875e715c0f103221b7c2caf31d27ed014367019a3278c9a9093ae8ec70", "x86_64-pc-windows-msvc-0.1.7": "cfb44b8fe17cf6b197722f89df6216509784731af8c9251b02c37e671f3dbcdd", "x86_64-unknown-linux-gnu-0.1.7": "54445e05f4d0c3c40a9707872807e2682f85b9cc391a359cc74d27db0b279255", "x86_64-unknown-linux-musl-0.1.7": "3f35d6b26ceea3116116f29cef7295ca85051a8be588023e97ccef8e9499cbf0", "aarch64-apple-darwin-0.1.6": "0b626e88762b16908b3dbba8327341ddc13b37ebe6ec1a0db3f033ce5a44162d", "aarch64-pc-windows-msvc-0.1.6": "5ab84560c8015fb15e3d4aff37d8af2fad054efe49fbbcc197abeea74e356d98", "aarch64-unknown-linux-gnu-0.1.6": "b1db36e5ae15f02121135e1090336c87281c046ccee2df14dbd5e0b2474e2d90", "aarch64-unknown-linux-musl-0.1.6": "dba27d6bb6468897c46326e223ef3c514d0d22fbf865b75e01cab5e4f9ecd737", "armv7-unknown-linux-gnueabihf-0.1.6": "295f8aef703e3334d5dae156a3cef2aff88048f8e2b18b41156970a4cbab3fd1", "armv7-unknown-linux-musleabihf-0.1.6": "23e5a22699919a3c1ab30b7b387b72039d63b18aa2f884032ad52ab414025f37", "i686-pc-windows-msvc-0.1.6": "6f2da156ab896755a4bf52b9c15678bc55a785cf7ad3ed066cf9122cbafc4fd8", "i686-unknown-linux-gnu-0.1.6": "0361ca8c82804c9149833cdea24aa77c7f4bd494f541bd65bc695eeae3995e93", "i686-unknown-linux-musl-0.1.6": "3d3a6e9d0e3e6fc658e915fdfa8a9b320ab5dfbdb2922bef0cbfb8faf39d16a7", "powerpc64-unknown-linux-gnu-0.1.6": "4e099e62d2252859a06d87b0d6ded54d59fe197fd2613a6de8b6ac2128bbb66d", "powerpc64le-unknown-linux-gnu-0.1.6": "adfb18397858a759f97b970147c02a3c81dc9a80312799b17beae5de35b2d8b1", "s390x-unknown-linux-gnu-0.1.6": "1ec05ad52b61d70f4b88059625dd4eaf10e396d62d85180fc4f717759681c718", "x86_64-apple-darwin-0.1.6": "77537d1ffc260cff0a14458fc0256cd6f6673e296f64b1119e56b86fabb6e76f", "x86_64-pc-windows-msvc-0.1.6": "95f141c5e08d63114555ac03d67f65ee1f2715066384173ba07370e7785762dd", "x86_64-unknown-linux-gnu-0.1.6": "29d26a41ac05681656cc54af75a53c1900bd464517bf244a73f40398df027fc7", "x86_64-unknown-linux-musl-0.1.6": "2c441237db21d6f4059b44e70a622bcf6b7c3d9c26d9efd60908ed3d589f2f3f", "aarch64-apple-darwin-0.1.5": "c4c09192362ef38c1d2f70b0acf2e90dae252ce2fd96267c00f7f4b8eafd3c4d", "aarch64-pc-windows-msvc-0.1.5": "600563177808cc5b20ed7a63785720659168f067e589bc3311f478032f721374", "aarch64-unknown-linux-gnu-0.1.5": "362bba991e0f577f413a9bcb72118a4d4668b6afdeaa9d398882dd4a2698f7a8", "aarch64-unknown-linux-musl-0.1.5": "2d947da5e3365f08ce0c861dccbb45a1986d4165c38d26fe0d94c43d1009a862", "armv7-unknown-linux-gnueabihf-0.1.5": "d92387a7113d97321a138b883e736ec9516762d93f782e954ec2ea1bfcda486c", "armv7-unknown-linux-musleabihf-0.1.5": "4da41219e93ec89115f8896ee67970fd80c40af8027fb78abf7bc9b1c943c39a", "i686-pc-windows-msvc-0.1.5": "7d6bd293c94b319db8c00116b54514000b44fd094e3819d9510298de72fc60c8", "i686-unknown-linux-gnu-0.1.5": "71c78b017a8793242d498ff17abf919968b53c1ff98ae477ec4c4984311ddccd", "i686-unknown-linux-musl-0.1.5": "845444294f63059a04f8278236dd5434c716d6ebc248d4d4e63245b5c7869659", "powerpc64-unknown-linux-gnu-0.1.5": "47f5c406d7819021354663ebba93ec0bce3bc7d025be01f6b3bc97fa84db1cb0", "powerpc64le-unknown-linux-gnu-0.1.5": "fa4c0c349085dac59cec332a6f5f3f15f966b07c11c5a1d0c1ed7cfd62dc38fe", "s390x-unknown-linux-gnu-0.1.5": "07621cc4fff2ed32e4af224a44803d0e6abe4ef59d05a20e57eaab54b387cbae", "x86_64-apple-darwin-0.1.5": "2b0e89b9406e8cd26e692b570672880c5742e7678d7ab8397f5c112919342b42", "x86_64-pc-windows-msvc-0.1.5": "7ceb685bf77d218a88b495c999662e487144c639122d672d07b4246c0e88cee9", "x86_64-unknown-linux-gnu-0.1.5": "ec643e3712825836e513d708056b3843a0b4af673fa9ef120009d106b77b7dce", "x86_64-unknown-linux-musl-0.1.5": "0ac221bf04b81afc1c003bd5af85a4690e4c289912c66e1c11f94f7d74974c10", "aarch64-apple-darwin-0.1.4": "d6dc7b1eab34e81d13fa269089df871995aa6b03a9b1f74a936d52541750ee5a", "aarch64-pc-windows-msvc-0.1.4": "308e9e70c60549ca7b4f173c5dd9c1992daf265f3e934698f90baeebefe97c71", "aarch64-unknown-linux-gnu-0.1.4": "188aeb5a9b6a369881ce90042f46edebd8bb220da4c13d1c56046bf7b92239e6", "aarch64-unknown-linux-musl-0.1.4": "9ce29a09ed4922f755f38aeeb5b9534a45f6371e4ca3f112acb78f1303295e71", "armv7-unknown-linux-gnueabihf-0.1.4": "6d9b27d007bf4cd8414dbf19aa6a0085a5054131a8f9a3ef11dfc129c552496f", "armv7-unknown-linux-musleabihf-0.1.4": "b3fcd6b43343c05a2df075aca00b024246fb60cbbc9fbb56e4da75dc4c28e6dc", "i686-pc-windows-msvc-0.1.4": "578ff7a38fb17d7724e546cb28a4be4055982dec496f4bcf6563af8d0574193d", "i686-unknown-linux-gnu-0.1.4": "ceaf84041982b8b6ad3c920be5b1d78f1cc1cfc32332689acf046ddd4e34c380", "i686-unknown-linux-musl-0.1.4": "399ea6ac4aa94bd60e9048531dd9ba8168a88a30421e771ea73a504c92346981", "powerpc64-unknown-linux-gnu-0.1.4": "d08ea41caafa012b46c823232bd5e343b09bad6b6fc7ddde2c3d1cef568f1737", "powerpc64le-unknown-linux-gnu-0.1.4": "88acfbfa3410105257d72315874b2aa74bad319f036fe1ac393b344f3e017887", "s390x-unknown-linux-gnu-0.1.4": "077fba3550bb94707cb57d8316970b195c1b76f62177b50a18e7adc151452297", "x86_64-apple-darwin-0.1.4": "27a2800606b417d8f3102354efd0c09b8e08c94f754aaea9809a74a76e7456da", "x86_64-pc-windows-msvc-0.1.4": "d87c514da69457d7b6b6c9805a0b9e339d4b0bc865be45fc439c703c30d98f37", "x86_64-unknown-linux-gnu-0.1.4": "6b3b27474b4779dc1e6ae1353f4faac00822e3ecd505889162bd3ef91bea3cc4", "x86_64-unknown-linux-musl-0.1.4": "fd0ae41fe4a84e5d99457442da61c0571453eb7ad2791dd6e1603df1883e6664", "aarch64-apple-darwin-0.1.3": "d7554aebed6483ffd7f60617e2567ae2fc61dccb1a029834c92d4313ee185a33", "aarch64-pc-windows-msvc-0.1.3": "daf5642a0b14d78a7cb1c9e7305d034ee9c6a09071e8507379b5b2686da9150c", "aarch64-unknown-linux-gnu-0.1.3": "86bc7b9f40f3d367a64e4c3243f1298f1dafc0885d22e0aed873552343b3f1cd", "aarch64-unknown-linux-musl-0.1.3": "11a5ba3b94fa72d09f1358eaffe206c83e1447d10f2da58235a792e68a44ed4c", "armv7-unknown-linux-gnueabihf-0.1.3": "288374925e414a3dabbcab335a593359dc4caab4c923a9ef69a8e3a8dc93e747", "armv7-unknown-linux-musleabihf-0.1.3": "7ff675a51ff0fd5a3a372309df49d3776a5c29e42d927da122f51fd3c8b0fd8f", "i686-pc-windows-msvc-0.1.3": "cc24eb8bc24c90ccb6686485c02d3df3a0cec04c9d0491d92a4479dad9064313", "i686-unknown-linux-gnu-0.1.3": "4b9b85974b364cd7bda2a5f9c4a0ed9e9c4a365bcd00673b4f3850c8c2b55ab0", "i686-unknown-linux-musl-0.1.3": "7b04b06e987edcf7229a1ede50de3dcb0295590203c7affb90a24de142cc61cd", "powerpc64-unknown-linux-gnu-0.1.3": "45533eb90d0a92bc5ae7dc67303698cf43217cea28f53bbd5ac09d372f4cf489", "powerpc64le-unknown-linux-gnu-0.1.3": "6b4b5bc9163883c51844fde3acc58599548f4561a5dcbd4e78cd8ca3a8260d56", "s390x-unknown-linux-gnu-0.1.3": "dcdd65d5aa52c389b03ae9aa2d728da89b6aa6561e40e93cc846f2ae63e2bb43", "x86_64-apple-darwin-0.1.3": "55726dadf43771e97b61b79165f2bfb8071799988bc2d9b4b3eff4da98aa994b", "x86_64-pc-windows-msvc-0.1.3": "605e44ed4e7ae718dca298584270816c1d8c6eddcc1bc96b17c37d5938706ddc", "x86_64-unknown-linux-gnu-0.1.3": "9b462ec7ea6acf3d5c02f0ce1060d98376778e2a887b4315a4964e956fab5448", "x86_64-unknown-linux-musl-0.1.3": "ee8bf6915af2a584ea024ce8669b1aeca03928aadcbb25c8f45359acc1992c47", "aarch64-apple-darwin-0.1.2": "99a245e703c1d95afc9b0c2e00bd47bca6ac5c17e6cc046e58bf3f70d6536330", "aarch64-pc-windows-msvc-0.1.2": "644390067887b8b0f1bff2805211de6bd006c97ce259760260b27da5356a7db6", "aarch64-unknown-linux-gnu-0.1.2": "fef09ce9591c72efd1ef4ce2b0956f1edba21328e29ad865e795d16186a20a06", "aarch64-unknown-linux-musl-0.1.2": "a96338c7e96228531a0c2cef39ebe17a215fca3346e2352a00b9f88bc25d5197", "armv7-unknown-linux-gnueabihf-0.1.2": "a15894de509ae15eeb48d0121e08536b1b8f16855d88cccb61ecab0c9f4e537d", "armv7-unknown-linux-musleabihf-0.1.2": "1c6bf703c489d60ae1db402508d1527292411d9c4fac5d43cf79f08e444e6167", "i686-pc-windows-msvc-0.1.2": "aca5b93beac3a76edd7c2ea55f0e09672d2d7f85fcf5c9f4f65c252db643b5b4", "i686-unknown-linux-gnu-0.1.2": "fa42d9559589cee38f8ac34c48ce3f9981d204fa2be48fa72945e9c1f026db8c", "i686-unknown-linux-musl-0.1.2": "f84d9770205f3b0387ba74dbc62a47f2b234f52fc58ec0e9b8ceb0697035a6cf", "powerpc64-unknown-linux-gnu-0.1.2": "b8731842d1d762538a8d41e49853cac4b06b827b0f762bd08e951eb47ec2129c", "powerpc64le-unknown-linux-gnu-0.1.2": "36015e708b571465e12ecb655e8165e51ee1d7295800484b94ab21e04c2b17b1", "s390x-unknown-linux-gnu-0.1.2": "592fc30494bf63ddb510ac929233a6fa44488273099e064fcf91efc10a3c49ab", "x86_64-apple-darwin-0.1.2": "cb339e9684043dae3cf530bca22f532198b9f151b01812f701ed0b85fec95b0a", "x86_64-pc-windows-msvc-0.1.2": "5e515c69653469736e76848f401d9f72b4396d8b7be2be77f748109e04542d26", "x86_64-unknown-linux-gnu-0.1.2": "cab189b03ed0d882d45691d6cb4a7843e9d8389ba4e2e43cb4616a46ae69545b", "x86_64-unknown-linux-musl-0.1.2": "368594d2e96a8a7e14fc610259f1c0a29fab4a84cd061a9373ce415c742df04e", "aarch64-apple-darwin-0.1.1": "e2444e4c7bda7133a0c47a368993be55f7bbe3c3a68d14be83dca480fe624c5e", "aarch64-pc-windows-msvc-0.1.1": "8eb1f83b0e3c9ddd818176fc26065b87b7cb119764c84b109c70d12dff283d21", "aarch64-unknown-linux-gnu-0.1.1": "2d56dd602aa62e5e8185971e19c77d6df1e9f14a9190176d8f8212dcde827dde", "aarch64-unknown-linux-musl-0.1.1": "ee1117ea3e4c32c92f598592c946bb941cca437cc0ce62bd4e86ea889a081e29", "armv7-unknown-linux-gnueabihf-0.1.1": "f0f0b4db10954496149ddb7b6a9d7c16418f386210f3da2823904bde713ba369", "armv7-unknown-linux-musleabihf-0.1.1": "894e6f0c5f8a8830fcddf38afa81960fb902211082ef7a1aec00637a2c6e2710", "i686-pc-windows-msvc-0.1.1": "a6d5601c9704790409a3540d6dc6cc2a955b234f07df9553e5b4555f9b8ac7e5", "i686-unknown-linux-gnu-0.1.1": "9617cd3a921f9d65be973482fae5b888e9e1a9617e779d7d47f3d5f2cdb5c332", "i686-unknown-linux-musl-0.1.1": "55d574637179362a2ddf10125d0386054a0cfb3daef0943e9082a87a1a3424e6", "powerpc64-unknown-linux-gnu-0.1.1": "143b227ace509cb0a2e2411a5675935d67910f7a280f35931e112e137dc3b894", "powerpc64le-unknown-linux-gnu-0.1.1": "94158cc4d4208b29962a6be2245fa391ce158673c4e8c8baa5e9f592c080dc29", "s390x-unknown-linux-gnu-0.1.1": "22dcfb5338e546713b86acc1c25d0c11bb72175df652bbd0ad58082c4e273b8b", "x86_64-apple-darwin-0.1.1": "da0e3156387a419db6c123fd7d009d7f6153dfb631a17e7aa1551f4d6aec5c7a", "x86_64-pc-windows-msvc-0.1.1": "080877770e3494637a01cca05e88ed9a5a450f6129b90053e7f3014ce761f178", "x86_64-unknown-linux-gnu-0.1.1": "0f70840c8c10ac8013f734e76977494311b7264a12782bc95be5f9d2e1414176", "x86_64-unknown-linux-musl-0.1.1": "2b5555abb21598969be862a05101f35079ff6c72466d74eb22f9a1c773d646d0", "aarch64-apple-darwin-0.1.0": "2e4e91d65d9453705753c0a80d773e2e613f07db7ba75b94edd12eef0e8e268d", "aarch64-pc-windows-msvc-0.1.0": "a2f66624f000c30c0768ddf2ca55c7437181fdcf937ead004cb7ef8504da2fd5", "aarch64-unknown-linux-gnu-0.1.0": "63bf7d3eec474d4ee32fac3fd396f6fabb992328eb3fdc22f68ca3c7bdfcb8ee", "aarch64-unknown-linux-musl-0.1.0": "fba0010be960178866c98c987ab5b6c639c68ccc8f062fc6287c4076ed13b42a", "armv7-unknown-linux-gnueabihf-0.1.0": "a888123359edb40d08d406ed00c9d378ec1c8a033352ae8dd88fef59fe25f354", "armv7-unknown-linux-musleabihf-0.1.0": "94ca8c41c8e4c7a75305beb75bd2f594b428228fbcc335607f69695c8a6efdf5", "i686-pc-windows-msvc-0.1.0": "2c9e7dde93a1d2d458f03c98dbf4c0de1630d1a41a82bbaf6d91d4ffe7114523", "i686-unknown-linux-gnu-0.1.0": "582fdf2c2fe63be823a4bb6078a88c7e3e13b4146ee94df523a06224cd417d06", "i686-unknown-linux-musl-0.1.0": "c6e281540dc628b789aee96cd31c219025b32430edb2544f5e75ddcf44d95e61", "powerpc64-unknown-linux-gnu-0.1.0": "d4f4f4e8675879e01086667319955a5a36d0183fe8a86227f658f5fb01936bb1", "powerpc64le-unknown-linux-gnu-0.1.0": "076cc6973de196d05673f6671f68ee4110e1475fc8cb2cbbae09aad688ed7c82", "s390x-unknown-linux-gnu-0.1.0": "31061944ad922b7aa2cc4f7fae5a4a29abb72d5ee64538f0297eec5f20fcc4dd", "x86_64-apple-darwin-0.1.0": "f7d89c2f6b9b62ffd8f1ec0f5f9344a338acf560971b8a1ba22a2a65c94d1920", "x86_64-pc-windows-msvc-0.1.0": "a6974efb00ff6b162927691e616b45223195444a1fc28886ded8faca825312be", "x86_64-unknown-linux-gnu-0.1.0": "4d669faf7d0964cde56589ad626f45a27ca41f2c91671b3a5aafb5d1c7bcd2e1", "x86_64-unknown-linux-musl-0.1.0": "867bf01477096ae8a2b20758e189fe8fa8f0b53a6b8d090066724bc37d6df61e", "aarch64-apple-darwin-0.0.292": "70807eaab0f081ba0fd17fde56e860faa7bfb4a938bcadd829eb96d648eca8ac", "aarch64-pc-windows-msvc-0.0.292": "bbdf4aa474899196290734f45dabebc4faf796039367125c171ec017f7bcfa85", "aarch64-unknown-linux-gnu-0.0.292": "08b842e3cfe3c60e50ff0ebc07cf099b8fd0d881e3d40bd89b3a6d7722a058e2", "aarch64-unknown-linux-musl-0.0.292": "7dd8e7aacfb7217bd672efec59aa55711fad36b149181d6eb23468fab3f74c40", "armv7-unknown-linux-gnueabihf-0.0.292": "476c62c7a844fac476311f34ccdf194e9d77059d098352459490783825e293e7", "armv7-unknown-linux-musleabihf-0.0.292": "a28175dfe75d38f54c39df92f16c4ba4ff84a4e5a9b81351c91246ab0f6af1f4", "i686-pc-windows-msvc-0.0.292": "3dec6513e8bcbbee8a57c868acd808eb1bccd9e00b07e35c1ba70ff78fb84224", "i686-unknown-linux-gnu-0.0.292": "a7f47a1d8d599208743bfe9f4f3a96ebb65771d5923e0e68b0394c1c41bb66c0", "i686-unknown-linux-musl-0.0.292": "d7185d63840cae1a89bc63747d90f958e415bd5798a2996004481ebbd4a935bf", "powerpc64-unknown-linux-gnu-0.0.292": "7b6aa52afb3a28257825a544b0a23b1675d70c5ff9fde12dce4721c28a0e9980", "powerpc64le-unknown-linux-gnu-0.0.292": "cbf3454356b6245c8afadc7b2f02fe442c3f40c0cae7db7987f784a4559b2bee", "s390x-unknown-linux-gnu-0.0.292": "0dc6c8bd253d1f7d7fd887c9cf557c57d581989003d0bbef640d55236164f8a6", "x86_64-apple-darwin-0.0.292": "d9123a94d7d0fce2140acd7cb86f83e2b24b29d031b3a84956238e5ce2d15f42", "x86_64-pc-windows-msvc-0.0.292": "76f1fd5b40a9325a7638f0a5d1d260aa7c10b9d63456ab6d8345afa68db907fe", "x86_64-unknown-linux-gnu-0.0.292": "39a488a2e21d3bca379ba6ee2ec5cf2d641d578efb4b16c27c90272138dfa37d", "x86_64-unknown-linux-musl-0.0.292": "bb43ca7bb678bc995abbdfa005dfdd084061851c53e9c8cea9813478326eca50", "aarch64-apple-darwin-0.0.291": "f46ab2f74c4398736c19658c1f98110b3a7a123de0d897bfd5b2fe317d179b35", "aarch64-pc-windows-msvc-0.0.291": "65c09e014e712e9badbe527f3d793057fcd7e76333b8190bdca70f6183f64533", "aarch64-unknown-linux-gnu-0.0.291": "433dd09ff0741f4c5bcb4e3a01d054e05ade91176e4319d3309328542ba595e6", "aarch64-unknown-linux-musl-0.0.291": "d8cf59a5c2f0c59227cb7515b86f9ce2068effbb93fb9d942668e57d324dab90", "armv7-unknown-linux-gnueabihf-0.0.291": "14b3010828eab89f37651b199c54d31f0fef26ed919684ebea58002f53b8a465", "armv7-unknown-linux-musleabihf-0.0.291": "f8033f3c6b5470a3defec4de4d43a4b50b5e960094c75aa0186f0251cc8ca7fc", "i686-pc-windows-msvc-0.0.291": "e18ff6fa1ab0484b1e4d6360dfefc30392ca6a19c4c97865be6d57d8fcb322c6", "i686-unknown-linux-gnu-0.0.291": "402d41bf99910ea5314db0a3bc6cccae8175d5fecb393d492754bedd535350b5", "i686-unknown-linux-musl-0.0.291": "8cad74b33614f8378c5fe4645384e5c35749fbd545debc8eead5d764f6fbcd56", "powerpc64-unknown-linux-gnu-0.0.291": "066c8db604cdfaa5c1b5fbc54580df330552fb963ec10683198c494f129a5fbf", "powerpc64le-unknown-linux-gnu-0.0.291": "36c4ec81f7a137dac8e16a2477eec2a77da6f0f1d3c452a892b4d429b632788d", "s390x-unknown-linux-gnu-0.0.291": "20e3801b8c25df606186e512d8b333722132a17968935875d63d0662d9cf879f", "x86_64-apple-darwin-0.0.291": "cac70425998c298109e75f349d3f653d39116d4883022964f1a05633b1d1919c", "x86_64-pc-windows-msvc-0.0.291": "5ded4afd6133e1c93fa5c49534978975bfa942d79e94c2ce917f325ae735a9e2", "x86_64-unknown-linux-gnu-0.0.291": "c8354e89d850ea5500c4ade32a1259e74b84a8851418506da864b9b7782d9c39", "x86_64-unknown-linux-musl-0.0.291": "062cfa75476c5ee9e068d94bc04fc1cfe4972652b4cf5aece20eab30a6e8cdc5", "aarch64-apple-darwin-0.0.290": "7c31c98ab3de6f38cd37aeb0f51faac07864f790739da83292deba61e747bbd6", "aarch64-pc-windows-msvc-0.0.290": "638e7ba1dcd30391772185ff265799361ffed34bad5b1a28407f2f6e2f13d26c", "aarch64-unknown-linux-gnu-0.0.290": "f22abccf3909ec3a07d51f147e90885edd4943870d1fa3aa9a0c0b961a46380a", "aarch64-unknown-linux-musl-0.0.290": "a9111736d8586e68ea0c7a84d6a6fae2dec76c404a6516d727b3562f5805e8af", "armv7-unknown-linux-gnueabihf-0.0.290": "b138e7575d40937b0e0777e241ee3e77b20139682ad6da5c1419ba2cb85ce22b", "armv7-unknown-linux-musleabihf-0.0.290": "0c7980ef569b311947e7ea842450244055c70d6a4cdf97b8564780089dfe3cae", "i686-pc-windows-msvc-0.0.290": "956470e902b119a0e1e8d553b1b4f9dcb5d294bc5fbccef8450fd111c9919ca3", "i686-unknown-linux-gnu-0.0.290": "c7715e9f117c3e8e6786e936d1f466c9afe213b9ca0c26603bc52791e48b4928", "i686-unknown-linux-musl-0.0.290": "c73e759c006d2b8f635a3be7f98715de034cb586c6186a693de0028e79d5bccb", "powerpc64-unknown-linux-gnu-0.0.290": "1bbfe5156fe5a132e6d6a4e5455441ed2a994f67c308e3fc39d859eefec5cf9d", "powerpc64le-unknown-linux-gnu-0.0.290": "30810e876e883217f0b0815915b8eea743b6747bbceccbaf520fe21062169489", "s390x-unknown-linux-gnu-0.0.290": "d42a2e653ffeee07fd2e6cc3be354f9aa7a132bf378653edae54621394f535ac", "x86_64-apple-darwin-0.0.290": "6c2a6a4bd0b6e491b23bfc18eefd3d1c7e9b1a6699f970718db98d94b916c009", "x86_64-pc-windows-msvc-0.0.290": "90372ce4df121cec268d45d8e407511bd7ca81f77a2f7e7625bf44a94b71edb4", "x86_64-unknown-linux-gnu-0.0.290": "5c8f24430c26bc297581ed3d9524fd69eae62a772b1a598e3aca2143e3d70418", "x86_64-unknown-linux-musl-0.0.290": "b773d33661500b10223f08228131791a762376380dc93b643baf6ac376f66b27", "aarch64-apple-darwin-0.0.289": "88884b3817fc83b24b1555374b735bbaad9c28e300eb4c940f32574ea2e23083", "aarch64-pc-windows-msvc-0.0.289": "c690d5bc3334a01bbc2fd3ba085fc77c7ffed13b91a59b196ae9a1621408cb49", "aarch64-unknown-linux-gnu-0.0.289": "c53edac249d6a62d473d786e052555a385f615fe9f9ffad73958c4474bfb671a", "aarch64-unknown-linux-musl-0.0.289": "83106567757c9a8eb67530cc3e3fa453a077e8da00c8864ed474b481ad3316c8", "armv7-unknown-linux-gnueabihf-0.0.289": "46ae8e1b0b69aa314d215c6516785eabf0c5ec9c018f05ff718810185ab3ec15", "armv7-unknown-linux-musleabihf-0.0.289": "3276ab7fc4d4dda6c1446562c05578236fff17b338be21bfbd68e535a4afd48f", "i686-pc-windows-msvc-0.0.289": "56560aa8dc8403505a57ba298763773c160ec0382c2d16c1515501d30691d189", "i686-unknown-linux-gnu-0.0.289": "0be3eebf8594f368b86fd964adbb2859e6a54e21270241ae3eedcd9bbfec3c39", "i686-unknown-linux-musl-0.0.289": "2329c8d01e9010f350960147e9a6104111e156a5b2feb96c11b2ef2b6e68d9e3", "powerpc64-unknown-linux-gnu-0.0.289": "86c3e2e928d8421983994ba30c907fad2c9a936731bf59f572eca7b39a320435", "powerpc64le-unknown-linux-gnu-0.0.289": "1c5fbf61b073159589651185d4fff2c508304fbf360dedfc1a8072663b5bd2f1", "s390x-unknown-linux-gnu-0.0.289": "0e6600715e0c826389a4ca09b176368be1b7b1947d2a0056b38237dc903dc8d6", "x86_64-apple-darwin-0.0.289": "9097d6f0536e68ea28553599817bc309de44f1748c6bb60c37c57c99c09171cd", "x86_64-pc-windows-msvc-0.0.289": "26bfaf9f1555e88ae0ccf4c69bc933207dc526feb3dc1570124d9d2de3fdb365", "x86_64-unknown-linux-gnu-0.0.289": "293ac14f035fa6c0103d96afbb59bd030200f7bdffd22646d778d6341af294a2", "x86_64-unknown-linux-musl-0.0.289": "cc11de75f202161c0519e2a724a9128949815d047be141623954c5eb54413b32", "aarch64-apple-darwin-0.0.288": "bce8f0be2aa26a4991603c3730842291f0a05425c23db497545fd8212b91f18e", "aarch64-pc-windows-msvc-0.0.288": "3883780830d2bbe661aee3be182925d73c9a61638c12f069df4ba6a622cd5729", "aarch64-unknown-linux-gnu-0.0.288": "8166f5bfa57f534c6890a9017fbdc4bb2e60fac91fab6c05a9e2e97985a87822", "aarch64-unknown-linux-musl-0.0.288": "0e86aa5ab6ee75c97287015c8a04aa9e3c6d9208f1f8e1f43f620cfa782cb700", "armv7-unknown-linux-gnueabihf-0.0.288": "43291af3a44e8492465c8db1bafc6c5cc91eef21f9296fcfd6171b9b67686eb3", "armv7-unknown-linux-musleabihf-0.0.288": "b86215045c6679df8f807b9794dd60b79d5abbce1eb3036bfec80c5ab5a097bc", "i686-pc-windows-msvc-0.0.288": "18445b5b125e72fde0c536efca75a72452ae2e76b30fe20905f048d57ec5e4a8", "i686-unknown-linux-gnu-0.0.288": "faf580da60c5324c76f1f5ebef7f0b4b725a5c6c0fbb94b07c6dd18f8ff59087", "i686-unknown-linux-musl-0.0.288": "275395d7782b9d863081fa8895f82f1a90d8cad02249e5d2f40ab63e9774be8d", "powerpc64-unknown-linux-gnu-0.0.288": "824377ab99b51793769560d120774d5085dd4e52c8bdb4d536b1271bf747888f", "powerpc64le-unknown-linux-gnu-0.0.288": "28402f99a81fbafe7185b4cdf83ae6ca08c73990386b0317b24f627f922dc144", "s390x-unknown-linux-gnu-0.0.288": "f15cf0adef80e732bd6c90b49182003c94c86ae3f80db1c46ea45386bcb654c9", "x86_64-apple-darwin-0.0.288": "56539c76aa4af030826697cc53067a6789364e772ddc89be32be7e7248d33b97", "x86_64-pc-windows-msvc-0.0.288": "df9b5fcad26dca30c9f286e8b4dda6da62fa09a98b8b98a872f3c5d1b60a0586", "x86_64-unknown-linux-gnu-0.0.288": "4980c1bbd083bf26cfd6215b1c6fd69f36a46f07679fff9a5258e7e8081f44dc", "x86_64-unknown-linux-musl-0.0.288": "b346c5a8bd03399a4c788c8c0d5f7e8e7ce5eab887f42bdfaa1f4233f65c1b87", "aarch64-apple-darwin-0.0.287": "3534ae742828a6bc9c095d47f685af111fde32d9ab6f5b3d97d8ae4b9bc6c0f9", "aarch64-pc-windows-msvc-0.0.287": "7414b39ec2914df0f60a4b356541596716cc4d1b3b62641f03fbb9e6bf6b6ab5", "aarch64-unknown-linux-gnu-0.0.287": "0d824de44d543356426d524c48d6ab81ddb6d51aea2ee8667d10336a9b9c7c0f", "aarch64-unknown-linux-musl-0.0.287": "6e9721709b133d11f65b106cbbb7ac13cee2c00f976f221167c603204bf20654", "armv7-unknown-linux-gnueabihf-0.0.287": "7b80da928205c1133619304138a726d94ab819e8999579ce1fb21104b1dacb5b", "armv7-unknown-linux-musleabihf-0.0.287": "b87a349984167b0a0592d0e8232ee9c74b6363f2338eea52c75ba8d5b0d9ecab", "i686-pc-windows-msvc-0.0.287": "ee6c5be8e4f18e1493c2b7bd4cafcde82b2f7c1c0fc9e860ddde3fb509e75f7f", "i686-unknown-linux-gnu-0.0.287": "b979332b6dc2f74af9f0192179bb2c91a665606839d39716d10f9f20bd9af9a8", "i686-unknown-linux-musl-0.0.287": "a6ee4781d1a5cc0103be23bdf2c858955c16650d756a8e207bede64b98d09d9b", "powerpc64-unknown-linux-gnu-0.0.287": "cbda4c239ce2e9dc78b2155798583624abbd7ae3d284ac9475dca16544d56919", "powerpc64le-unknown-linux-gnu-0.0.287": "5b6b13c011df48843f2225382810e3c3e8d8990180f3cff8943f193c3cda0556", "s390x-unknown-linux-gnu-0.0.287": "57241fa1076fea8ffc23a062bde94161f5129482f58347aa8565bfed88b97ba0", "x86_64-apple-darwin-0.0.287": "66be9c3dbd5423d990566294ff66114b99dbc11f3203321dc17031ca47d48ba4", "x86_64-pc-windows-msvc-0.0.287": "3e803ca440a448245ef1603d4e33edda31a2877978b0f1cb1141517e9fc5bb7d", "x86_64-unknown-linux-gnu-0.0.287": "295d97e4e79508e4946882e4bf8c66fcf1671c94fac7f2c831a5c601091f09e8", "x86_64-unknown-linux-musl-0.0.287": "c0c4f0d8e5e52d4b7ff907cdcf9e5fc3e0d7bf96db9cf3d1018cdc227d2d35c5", "aarch64-apple-darwin-0.0.286": "6df9b3e6350803bee96133b6f5bd79c2b15b36fb2d9570861f1cacac1cb1c57f", "aarch64-pc-windows-msvc-0.0.286": "6a5bb32bb0090173e9faee362e2f997884fb9ed21aa559d0aa5e248c7f21a32d", "aarch64-unknown-linux-gnu-0.0.286": "ddbb59c17adf7cfcdc962eb4c3a552e6b3b60da0954f304d02b233b0999e5824", "aarch64-unknown-linux-musl-0.0.286": "d2e9699517b532f843f76f8c19c884dad8d4a3cce361e8f7464ff289e281efe5", "armv7-unknown-linux-gnueabihf-0.0.286": "5a043c864a78222b4da933280b1c743d4283b4b3184626e2a790f855004bf479", "armv7-unknown-linux-musleabihf-0.0.286": "d8f389bd5f035a5cf7faca6ff43b4f557155e3792d83aabc40c7de639c2b405c", "i686-pc-windows-msvc-0.0.286": "72dd7b14a8ab39b7ab6f76f77e898a23ece0e04538514191e8640035e928156b", "i686-unknown-linux-gnu-0.0.286": "b6fbe006be00782788f8db770c39ef089a49027596a36694140b4e7794c60819", "i686-unknown-linux-musl-0.0.286": "0c40a610b8ebfe0b1b9355cdcc3a9e59f76ac93b5bdc5b51b4d6dd91c1115b25", "powerpc64-unknown-linux-gnu-0.0.286": "930e0de59637fbc0096fced0fc69ef6ec15e69bdae8987f4417cf76885cf53b4", "powerpc64le-unknown-linux-gnu-0.0.286": "a3f801da746200d4236d65a355d14d01ad42e0b67d23abd4af5c0a82dc6a0dbb", "s390x-unknown-linux-gnu-0.0.286": "00568d7cd5124b99cd483713a1961ace0220e5478083f825641a2b1ba9994576", "x86_64-apple-darwin-0.0.286": "93a67671eec43764774cde581c23b9442dbb720f5494c64498858aaf94a1c6ec", "x86_64-pc-windows-msvc-0.0.286": "658a16b182ec080509fed543bf4ac0d1e905763b9871a2d00e207f6da563df15", "x86_64-unknown-linux-gnu-0.0.286": "2831dee09069681187fd90a2f0f6e0c968d74fbe124c7d5b7748a9f42bb45600", "x86_64-unknown-linux-musl-0.0.286": "a1fa9c3d04217f732df3a479cf99bbea4c69a92b88ce7694b3fc41ebfac65a9b", "aarch64-apple-darwin-0.0.285": "6959e80a6a872c36b911cb18257257cf7352539aee3fe9d917a47ca87def804a", "aarch64-pc-windows-msvc-0.0.285": "99a1140a502b9412f567fece9509691b5ab199b87b76355630c850a294b8b9d7", "aarch64-unknown-linux-gnu-0.0.285": "4df2da60d3b4e7e2f9602f2a5d0595ad4b6595c1fda0de9ee00213b99ed96796", "aarch64-unknown-linux-musl-0.0.285": "2591444b96ea97badf3da35905c9df4b129002fdcb746bf4ea9924c8aea7e85a", "armv7-unknown-linux-gnueabihf-0.0.285": "36b50ed1a7d5d1e9b888104a136936a29d4b87e632901a5ae29aad4369c3f013", "armv7-unknown-linux-musleabihf-0.0.285": "e80d71078b764715e1dd0ab211a6253be45a43c09a573aa5233459cbf6a5e624", "i686-pc-windows-msvc-0.0.285": "b222eb6fc4b2e5eff236b8e7213a055a675c2a484595e5083e3d5e157b680de7", "i686-unknown-linux-gnu-0.0.285": "3fa261ace6b01ebe3ff914f15b14e1d96f384618f546094bba27a5b8923b0420", "i686-unknown-linux-musl-0.0.285": "c2f3bd9030ab0e5d4be114f92bc2a2a671e4fd3211714e711eee36d2ffdf4d0d", "powerpc64-unknown-linux-gnu-0.0.285": "efa69fcc33887b672400a29a087d569d884cfebf454eab20e7626e7b0f453fd0", "powerpc64le-unknown-linux-gnu-0.0.285": "e5eca7a8becffbc02f9d68155be7e3687b904dca985ef425e145fd92138af45f", "s390x-unknown-linux-gnu-0.0.285": "fab8e5b3977ff4e7fd818dc9005b0a6de321925e130d2ce79c1fb09fdbc0bfec", "x86_64-apple-darwin-0.0.285": "6bf82ebceebcdf1ea0942f180f39d6eb057d92100ad63025e0780fb574a4f233", "x86_64-pc-windows-msvc-0.0.285": "132226f6381f8bb11def5bcedd58bfb46b1cfab76f5141083301388473960c1e", "x86_64-unknown-linux-gnu-0.0.285": "bb8219885d858979270790d52932f53444006f36b2736d453ae590b833f00476", "x86_64-unknown-linux-musl-0.0.285": "7bd1794fd632f4bd60831b17b4be6e3635ef013aa16dece8eb4ddd2482e65e0a", "aarch64-apple-darwin-0.0.284": "c7a2387e933b555aec48ef898e9bfc75d2d32e1bf171c13b9b103fb8adffc999", "aarch64-pc-windows-msvc-0.0.284": "8d1132aab16ba0aab5e87026c8073fda0e0ac03c318fa1d486f3f5699cd8d56d", "aarch64-unknown-linux-gnu-0.0.284": "37e5439f9bd66612cf124623639ff0217cf04ffab2150ee263df3cb170b232fe", "aarch64-unknown-linux-musl-0.0.284": "a0b7d41ca7f91d357c4b38f47aa09aa061c877d7bcc1bb7482161c46a67fbde9", "armv7-unknown-linux-gnueabihf-0.0.284": "661f9589b5d756e9fe3e570a401ce88cfa8a1468ebf8be37882415ebfd7488e0", "armv7-unknown-linux-musleabihf-0.0.284": "1fe8dddb46e793949582f0aa3219da3b7d878224cbbde7fa9f2633830bf9dce5", "i686-pc-windows-msvc-0.0.284": "c691a9e482fe5bbffdcbf94c21a482ff6407a89a52c0e77bc0bc5e26cc5bef5c", "i686-unknown-linux-gnu-0.0.284": "2a95fd1efee70ace64ce8ed8d8fc0b9be890beda97df4c483d751f8f73feb7ac", "i686-unknown-linux-musl-0.0.284": "88fcfc41bcd45cce0f2a6c270d8f5c6fabbb961884d6fb66dd606ccc696daba9", "powerpc64-unknown-linux-gnu-0.0.284": "22f97328765a59eb3281e7979166f93ede4475465576a64af015a8cef13759e7", "powerpc64le-unknown-linux-gnu-0.0.284": "81c67c79ac26a5a83d8f432bd256b04779320624105735b88e0d6cb059b8ffad", "s390x-unknown-linux-gnu-0.0.284": "a276cee5afd41d5d5fc7194c6428c1d3c281300973cc4d84ca01528ae78618ab", "x86_64-apple-darwin-0.0.284": "b3f4bdc3c404b5a212acc98697dfee46fd9acd06a83b197e8191ea5a59eb73dd", "x86_64-pc-windows-msvc-0.0.284": "0987e8eec45f231a6245d3023ab8f00fc3e6cb4e94d4a5309a460c955798fb56", "x86_64-unknown-linux-gnu-0.0.284": "4f637110e7ad30548d1a3a01ad2b2703c5899c042b27328c8a8c5ee645391355", "x86_64-unknown-linux-musl-0.0.284": "8c371e672c2de2714cbefc3339dabc5ff370cdd645dce55f8d7ad64e23f3d496", "aarch64-apple-darwin-0.0.283": "ef7038b35b05ee7f8ddc3264d77e57771b3823ec5e414c6f3380f7f9e5d11e1b", "aarch64-pc-windows-msvc-0.0.283": "6ab44713e4ab80bae789dbfdb23b8e6858af6510d24a7fc2c6419b8fc101f3f9", "aarch64-unknown-linux-gnu-0.0.283": "811d1e5b73ece6e41156ad49b6ad2db67ce0fbce4392eefa7060d50b4d972f99", "aarch64-unknown-linux-musl-0.0.283": "8b90f084693fd0c90c67a5b4055eba6635b3ab33dee759e545639c96d7f27a9d", "armv7-unknown-linux-gnueabihf-0.0.283": "2abcea1e653fa7a311ea13e2ff804e2e94a69301305fdaa5f9a73ae62d1b6e25", "armv7-unknown-linux-musleabihf-0.0.283": "7f828c40c3c39379d5d538c3a319be8f608002ee136ec045569617ce700ab8af", "i686-pc-windows-msvc-0.0.283": "2ab433ffeabc4281b7ad8610ea3123177652af7ce2457734371e5c24a4edeb33", "i686-unknown-linux-gnu-0.0.283": "9a794e5cc5679298bb11bf9711eae900c818a22d73aae5d47c79aa89844fea1c", "i686-unknown-linux-musl-0.0.283": "567f3595d573d67766077db2af96a106708b2761668d913cc99fb01add40a187", "powerpc64-unknown-linux-gnu-0.0.283": "af776631cb555c935d84832e2b664b7c4c26ed0311449f248d45f9db5cd27831", "powerpc64le-unknown-linux-gnu-0.0.283": "6b847ba18e0795eeb45e8769be79d33838c37ce9484a410447e48b0d89ebf008", "s390x-unknown-linux-gnu-0.0.283": "55cea8c0e6e83ba3abaa743189c5a9a77071b56b0e15eb6b26e816a8477d70a6", "x86_64-apple-darwin-0.0.283": "30fddb5d97d4c02687c261d87dcb7e7b606e5dfdf84012d9872c2fbfdb5e87cc", "x86_64-pc-windows-msvc-0.0.283": "83407d8e5c4828c5c139f19f36bb3d45b4a3a024c7207d9924a34d922b2f66b2", "x86_64-unknown-linux-gnu-0.0.283": "e0984b1caf5c426bfe236de576b57f5b968e6b44b1fe0c114e3b2f9096604457", "x86_64-unknown-linux-musl-0.0.283": "217e8e974d2aad1570b376ce317e5ef352101538dda429e5424e4d6704b2be9f", "aarch64-apple-darwin-0.0.282": "8b2068fd4fad9c36245bd118e825b9baf31d72b766e9a6efa6be802e59ef5951", "aarch64-pc-windows-msvc-0.0.282": "dfabc8ae84c77ae3ccd18b69d219b1fe95bd16d6ec11471facb08056f65039dd", "aarch64-unknown-linux-gnu-0.0.282": "5ee2171626754fb89a2ee2e97b829802bff62d79f049a5627fe16164b2eb1e72", "aarch64-unknown-linux-musl-0.0.282": "1a810855e2120fddd052070d205f5f39560e57402a8505868f3a404729ee9a6b", "armv7-unknown-linux-gnueabihf-0.0.282": "0123228315b365b7a180f376786a955cf936ac6c6d6e5a2227aa330148e00116", "armv7-unknown-linux-musleabihf-0.0.282": "07ace0c3487c45d791a4be60ead0dc1fbe2bffed0c99cae63b2fb7120300ac49", "i686-pc-windows-msvc-0.0.282": "956abe6584aebfedbde9872b5f9bb5ed4362ad56b1ce628fef39ff67123f4f05", "i686-unknown-linux-gnu-0.0.282": "1386847ebc84c718d74187b366b181bab5358e92e7070aa26c4d4e01778460d3", "i686-unknown-linux-musl-0.0.282": "e1cb3bd4b2bafa336f306504ccc4fef80a066797a78c33c15d09e6d6c500aa07", "powerpc64-unknown-linux-gnu-0.0.282": "434054387b89c0a45758f256bc7511762218795ee858ef4f00575b2631423be2", "powerpc64le-unknown-linux-gnu-0.0.282": "5504da0ff240d2c2d08fae773b0d2207b7afd32476bcbae7139b5beed8207a73", "s390x-unknown-linux-gnu-0.0.282": "06e464569d2cbf2e368caeb3168170310f6165ee091c4770db5420e503f76fcd", "x86_64-apple-darwin-0.0.282": "f31ea56f3b6cf096be80243e70b49b5489bd2797bb45a7d1b8a0508cb0ce756b", "x86_64-pc-windows-msvc-0.0.282": "0622b3d80bb8be778d8c244e92cbf2e841b2af3bff0356920065dc2114691450", "x86_64-unknown-linux-gnu-0.0.282": "ae94c5a10a378b49d34f79ea97dd4be3c5845dd9523b3d250540b76dad0e3831", "x86_64-unknown-linux-musl-0.0.282": "a87d70a3549386cb0013cf0790d1d90a7d2cb944b8d934d8d868e3e33731fe37", "aarch64-apple-darwin-0.0.281": "2298209f65d4727305a5788062f630bc863427f2ecd8a2383f645d60e430ecf5", "aarch64-pc-windows-msvc-0.0.281": "c109a9ee7fdc7383c6022c28e835a419204b721b7547c2bf43a24feeab84cadc", "aarch64-unknown-linux-gnu-0.0.281": "131a7c5b657d6ae1311a263d91a185f21c77512acd7dc679df251d353a0a3f81", "aarch64-unknown-linux-musl-0.0.281": "9f0aff648f0bd01232507da83b63e82656f06bc0b8615d7756ef90f3030fcb60", "armv7-unknown-linux-gnueabihf-0.0.281": "e4ff892b32792a5b74b2415c5e302c5059ec6c01a68fb38e3a23d36ac71dbfca", "armv7-unknown-linux-musleabihf-0.0.281": "8d4676c2307b33193d4122f6f29de06458cf39b9edd005b3eed4b04b087a9222", "i686-pc-windows-msvc-0.0.281": "00ef92f1d8b34a29db496fb92b8fe495d4c53631bdd4f034a7e0afbcd9e530af", "i686-unknown-linux-gnu-0.0.281": "f4e32f5ac7777697d06f9c24657af362ab937383a0b9414b29ec964cd5fe45de", "i686-unknown-linux-musl-0.0.281": "3accc84e2a9d479d9e165b3bcc5ceb656e2f2bdc2be5ccfa211f1a2b9c93d0b1", "powerpc64-unknown-linux-gnu-0.0.281": "d06852398a52000ca6c231e98fa696cae684d6eed39e7a4d21116cd2ae11fcba", "powerpc64le-unknown-linux-gnu-0.0.281": "135674258728803141b3d147d7a1257af069e03a74160f1526ad3143ab507959", "s390x-unknown-linux-gnu-0.0.281": "d73332797e5ef45471630ec803509feb51e44c60eb9b4b6237808c804dc8fe79", "x86_64-apple-darwin-0.0.281": "e92ff6d855d73775dcab86d4fd6d300ffbc5666cd4524f219767a67ca85f110a", "x86_64-pc-windows-msvc-0.0.281": "35740c0d2658369dbfbcd3dfd8fcbc7b7140c93e66146871f6fb3c98716057f0", "x86_64-unknown-linux-gnu-0.0.281": "1bb3f0bb6bd663fe2d3eb9c42c80cad0d4273750cddbdc0f733d45e9c3c9ab09", "x86_64-unknown-linux-musl-0.0.281": "aaa94e14706940eab7f402408102a37465c3688c3d788f20db4f57302993a35a", "aarch64-apple-darwin-0.0.280": "c00a783f9d3b8c200c7d70c1827cdff8888105b78da5e6af8362f92b9b92652f", "aarch64-pc-windows-msvc-0.0.280": "1e458337217400aaacda9edc06b38249f762a9a8715247555ca60a2622ffacbc", "aarch64-unknown-linux-gnu-0.0.280": "c96f6d7ef6fa735d955d73a8551f0e95b7dc226edeec961718fe8e197460e54b", "aarch64-unknown-linux-musl-0.0.280": "877d2bf3f36608136ee00d807766406b3ea2c6867eea24a63ba5ec8d68a3f357", "armv7-unknown-linux-gnueabihf-0.0.280": "8310292b1a1a5b08ec6be40370b4f87cfd2b48874e1b650a1ffb431a354c46aa", "armv7-unknown-linux-musleabihf-0.0.280": "9661f91f45a4138fee9890a51cd72ff830af52a80413ab7abe726f3c2ea0ff95", "i686-pc-windows-msvc-0.0.280": "35bb4f7e266ea78e952cd1ef80d62ff7fda8ca8cac6c2937a0c67fa9eeeaffc5", "i686-unknown-linux-gnu-0.0.280": "58ad1e943062c6188dc3fd34956596a71423f75b99d75d1a70a89093c1044b3a", "i686-unknown-linux-musl-0.0.280": "ca6ef28a41dd75bcd24c465c7064cb9562f05be71128e3762d2b6e03e5b281d3", "powerpc64-unknown-linux-gnu-0.0.280": "2c331c19f137604bf35c9ff71834365cde98f55f49d49bc96bb2aad7aba4af30", "powerpc64le-unknown-linux-gnu-0.0.280": "455593a28a925645d0366504b134232da345bc1c384fd762a212b8532df5665c", "s390x-unknown-linux-gnu-0.0.280": "9668630ebd5272227f5669ea4fac312b0f2c88b0d5298db8d58dfb8896c02d14", "x86_64-apple-darwin-0.0.280": "6dda2a6e5a951626a2e824444c2fc02dd96a4de6dfcfb42f04d9c8c950dcac08", "x86_64-pc-windows-msvc-0.0.280": "84a7a532baa835b3d096a39846fb228c6238660d1f838d08fade4eeea3b4a68a", "x86_64-unknown-linux-gnu-0.0.280": "9d0b4b06224ae5289f272d76aed16b30a67473e60bd77ac09359c210d7027a12", "x86_64-unknown-linux-musl-0.0.280": "918b4250301be89b11c93b23a845dda720f47226f44e8519382e2f12c1ab6cad", "aarch64-apple-darwin-0.0.279": "202dc6061b609900858d783328b6c1963bfd09fedf991c82ffdc69e67e527462", "aarch64-pc-windows-msvc-0.0.279": "7372c6927973438c5e71eac11134bfe667262b841dbf70be980651ee87739bba", "aarch64-unknown-linux-gnu-0.0.279": "be41ee84d4e3fcd29ca3790b83f5b1f7f15fab1b7cce64f356dd0fbda5f6e69a", "aarch64-unknown-linux-musl-0.0.279": "f2553185bd0aa7bae1d411fb0688d0b1bdbea99adcd929e83e5bdc029e8360ab", "armv7-unknown-linux-gnueabihf-0.0.279": "aa37b1832208c3101fe8538addd986ea7b3499834ce3b662bcd604a2c26b8db6", "armv7-unknown-linux-musleabihf-0.0.279": "98f323e68dbe0b88c6e3c38a6e9b192dccefdc54333ac6532d6f34bf777bf097", "i686-pc-windows-msvc-0.0.279": "51b5546456053e26434aaf3fd71d9e93a44c510d03f4c390207f2905638b13f2", "i686-unknown-linux-gnu-0.0.279": "c9ddf081b5bbddd9b004dd1292774e240b52f42d7441a95683af9e1973cb7d8d", "i686-unknown-linux-musl-0.0.279": "6bc55f94436f54c60aa425076e69a69a84e8ba276e5bad5687d07668b7a3930e", "powerpc64-unknown-linux-gnu-0.0.279": "5036943f5e1444b55f2c692dabd09f037bfa3b80e400e1bc871420c774c4cc8d", "powerpc64le-unknown-linux-gnu-0.0.279": "a138a89094ff9dc4a57591285f488c864f4758dd2ccf6857c00b346c86b5bbc8", "s390x-unknown-linux-gnu-0.0.279": "fa3cd8863ea745dc58d74d39677b09d253765bb4ad8c03c90154d59d11b51666", "x86_64-apple-darwin-0.0.279": "c5bc9da0f02a8a9d0706d2299c2d7f7444ab7c053f5ff1dc7c7b0a0b5fa45060", "x86_64-pc-windows-msvc-0.0.279": "ac87cfcc98a9e36ef1e9d0350c7dc8d9fd78b492cf7dfece29c2f433bdfc1b5a", "x86_64-unknown-linux-gnu-0.0.279": "bf1a44be2e7ba1536490f0517771f81d0d9e2891b6dc5df03fb8fad1c6b84913", "x86_64-unknown-linux-musl-0.0.279": "dae440d7d5ae47d2e90b5cbbdeec0fda167690cc0c98625f4697ddd02eb4ce65", "aarch64-apple-darwin-0.0.278": "39a184580954fc6be37e99250dd50c73ce7308a1a4e2572c49489e3be24f3f46", "aarch64-pc-windows-msvc-0.0.278": "42688a3890e2f4662a1fbf4016bc6f66a48d99c0ffb8486ee76ba482aad55744", "aarch64-unknown-linux-gnu-0.0.278": "0590c848758ec67f4af4c81e4486da20ca6ad36c819887b6647d0b834cb6639c", "aarch64-unknown-linux-musl-0.0.278": "1d8299c25047f4b8d0fbe855aec6cb1136f4855d963a52cd37712266c83fb2c3", "armv7-unknown-linux-gnueabihf-0.0.278": "941db90a413fbc061c4c5cc22e510873df6f48d2d0d167d137f4b936f9e4dba5", "armv7-unknown-linux-musleabihf-0.0.278": "60eb61e3efd1539d359130344242e212540fd1ed24bba105ff982a8e0b4a9995", "i686-pc-windows-msvc-0.0.278": "71800c0aead687a882db32bacbf59c05e26cba615f8b487d6f3bed3649a96f1e", "i686-unknown-linux-gnu-0.0.278": "8944a858a16c4a2d08c19df7b606fc59820632c579c14a3150fba484071085af", "i686-unknown-linux-musl-0.0.278": "7f8f440b794b0fcd3d03019bce4b29d8dff32534d924ba9ab933489e81013528", "powerpc64-unknown-linux-gnu-0.0.278": "133f3cc31c842fa3b54ab659100e94046446f82f444d3d93bf88443602b311c3", "powerpc64le-unknown-linux-gnu-0.0.278": "b73e654db64397c71441c96220d0f844631fd36aa8299f1eec26a72411518376", "s390x-unknown-linux-gnu-0.0.278": "6f8995a2f2754b977a0329268213d74641598fa148ed07138cd3317f4367b2a6", "x86_64-apple-darwin-0.0.278": "d3590d505ebda159c38ca77b85d422e54576035b6f8e482a4565e0fdc6de0a31", "x86_64-pc-windows-msvc-0.0.278": "d9ed813f04a393cd621f0ca5512097ecf9f49307cc313f6512b7aa71f6f5f0b5", "x86_64-unknown-linux-gnu-0.0.278": "363af282c80321f2bc4fd4424056f4bbdae864bfecc9c082aa98c3e5252c1032", "x86_64-unknown-linux-musl-0.0.278": "c112ffb5a567dc1504ac6b27b18b8a7fe0de2bbf8ec6a0d83b425a7d286735df", "aarch64-apple-darwin-0.0.277": "f5749ec0dd78bb170ecfe9cbe33af6cac7372a965ec989d19d1f6d9830df1738", "aarch64-pc-windows-msvc-0.0.277": "57cfa448eca14404063da7fe70025fd360a009243e8eb86a2bc95a8d9b301816", "aarch64-unknown-linux-gnu-0.0.277": "4ec77f5639f0ff07aa3afc53996da432fdd4c9066ed6e6d9204cc1816cece5c6", "aarch64-unknown-linux-musl-0.0.277": "f2219ab45c982e4f771b371229c9e8670564ccd45c7e87b95aae57129992f4f5", "armv7-unknown-linux-gnueabihf-0.0.277": "a3c6656ea72cbca12c74b0bd724d6d5ca291379f1df95aeaafe51aad24cc7bee", "armv7-unknown-linux-musleabihf-0.0.277": "6891be99881a68b9282291ceba12a78322ea1d0abcae8ab38055530970777d83", "i686-pc-windows-msvc-0.0.277": "601572dc8461635bcd2c5354417a9962090d282de5722f769b3a438fb773301b", "i686-unknown-linux-gnu-0.0.277": "235368391dbce5c7b9f579fda1e1e4a7339e8d7b677eaf88210ed74ff24b0f4d", "i686-unknown-linux-musl-0.0.277": "2b87e6e680b7030de74a398af2f96e0fdee9428fca6a8f0ffeefec12bf95d0b7", "powerpc64-unknown-linux-gnu-0.0.277": "6b4b894d86743bdd614f713e391f7bf989183a9ff47e33bc29f48a93838b2fb5", "powerpc64le-unknown-linux-gnu-0.0.277": "6ea91dfabef64763907cc3554b9740b45fa7ac07456743122dc33efdf4f0b922", "s390x-unknown-linux-gnu-0.0.277": "d5acdbcef27023a9a8408a221d8c721716f159d291d12dda50d9c55ac96c2c2b", "x86_64-apple-darwin-0.0.277": "6e3e76d8c5896bbda6f81f768b2d03ed1ce2160e7f9bf5ce1851b21d39380943", "x86_64-pc-windows-msvc-0.0.277": "b00c265d4e21c22b04499f640430a4464b069e947ea727655b18d21985fc66c7", "x86_64-unknown-linux-gnu-0.0.277": "fec4a66a1790651940eeaff79064cc4d6f33bebdc24ddadec6404574ef2d0ce0", "x86_64-unknown-linux-musl-0.0.277": "f3f1b7aae4d1fd798f543453591fa760e5f534291c30f129376feb20ed7f878a", "aarch64-apple-darwin-0.0.276": "c2eb546630ab457c298005646f68b28af0fbcf551994342efcb9f92d8ffa77e7", "aarch64-pc-windows-msvc-0.0.276": "9bac2ffb6841ae490d1c543de8a7a10a9aeca538605d6e22f9839c6f2d25fd0c", "aarch64-unknown-linux-gnu-0.0.276": "0d31a98980c4b0a58b367c31c9a1eeb75d58b9bbd693853aafceeacba1ec3bf9", "aarch64-unknown-linux-musl-0.0.276": "42bfedc5c7fb5ac2032a565744bc1c6c24b534e6b795aa454726542bb14595bc", "armv7-unknown-linux-gnueabihf-0.0.276": "bda8f9244426cb38ef2df07212280b3fb4dd5c189f2c880f1b845301d1690f74", "armv7-unknown-linux-musleabihf-0.0.276": "8beae1817bf9ccc4abc24c74db5889c5ae43aeabbaa1535cd936490e04b6b4ee", "i686-pc-windows-msvc-0.0.276": "f6ed26c24432153b562ea52e44d47d3a47e990fb24163f36821c3f7530283789", "i686-unknown-linux-gnu-0.0.276": "0ade5c8b535b9de19c851feabd5fa641b536b7c6f5607cf5477e321dd86c2595", "i686-unknown-linux-musl-0.0.276": "ae783d9accdecf324a71a07a1d85ef3735387fcb4e13ce60bf35c0cad5f00079", "powerpc64-unknown-linux-gnu-0.0.276": "48a55643c8976b6fac9915dc3d5a467a89f5d131b1242c85eaee2d66ccc4f279", "powerpc64le-unknown-linux-gnu-0.0.276": "6afdb46374ec5633739af04864c57c44a93060b7022eb2671f7b3a2248ac8966", "s390x-unknown-linux-gnu-0.0.276": "cc870158a9b1f126f164258ad41604d513f00f7f3dec8c7b11f4daf221c4fe7f", "x86_64-apple-darwin-0.0.276": "caef02f8bd6ca339c6ef462fdcbf2ce92984b82214ab332e3c329e45eb7abc9e", "x86_64-pc-windows-msvc-0.0.276": "517a8ba0e4ac10c46a87ea17c8bea23933a4f2bdc3b274879cc497ac066132c0", "x86_64-unknown-linux-gnu-0.0.276": "2f6d5f1e025558c9c6bb96c0d63b03b1a9d92cc280822e269304a6008706e54b", "x86_64-unknown-linux-musl-0.0.276": "ee3688f70bd68ad576854aa87967619c6cbac681e9c76a03028962c8407dacf6", "aarch64-apple-darwin-0.0.275": "fead16d745b4b2ecd00e92abf5c6c41f350cf9c521829b04e45c52e9f4e7e6ca", "aarch64-pc-windows-msvc-0.0.275": "1784686cee578f37c3085ab1ba54a2196ef7eecab70e61e4a1e12f8e71f4a9e7", "aarch64-unknown-linux-gnu-0.0.275": "b242859fdc38bdec7f24807a7ec539e36c6dd10f0e216e448d92e9e84c0ca982", "aarch64-unknown-linux-musl-0.0.275": "60241d1d3506c772f131d830e644cb4c48a7a32e43e08ddbcbc3598bf95e88b4", "armv7-unknown-linux-gnueabihf-0.0.275": "fc6df534a005853507288c96d8faaaa33ca341faf6c533e472665f5d4111d0e2", "armv7-unknown-linux-musleabihf-0.0.275": "ae091d9d4f51622896e2fa4de14e024b77f83076ff3cbc3b17ef3b95bc3e946f", "i686-pc-windows-msvc-0.0.275": "57f693bc8ae5ba2382c4801581f905bf38ee347b2cb6da7c3016b8f779ba21a6", "i686-unknown-linux-gnu-0.0.275": "de9678ca3874c0dae2bcc342bb80c2ebc2db30cdced633e4b0d1a7ee1584c65c", "i686-unknown-linux-musl-0.0.275": "1197a9398759ff2475ce5ad9cffc6da7d9f33f290009ea766b33a5c969777a52", "powerpc64-unknown-linux-gnu-0.0.275": "637c0482eecc564501689a9408f93134c39d39ea88593e524ee4c8eed2202007", "powerpc64le-unknown-linux-gnu-0.0.275": "2d54e845ea1d69fb86f027abde25f0f3779c161a28caacca42b06a38d77b53e2", "s390x-unknown-linux-gnu-0.0.275": "59bfca4eb1ebbd6322321d0cd7458e0e44b45357166f04ffd504e788bc7e666e", "x86_64-apple-darwin-0.0.275": "7cc31f20a3d7ea2db1bdf42f7b8240ac38e424c62a7e0f2d40f7a96ca912f111", "x86_64-pc-windows-msvc-0.0.275": "eaba92a8f7b9866248e7c8781b612f8a0b65d7e7a4027bd5b6c1e1d17a7a3494", "x86_64-unknown-linux-gnu-0.0.275": "f434eaa6b6523e0fffeb0eb00ee5f59999c76ed041e436d519dcbe7b8c4337fa", "x86_64-unknown-linux-musl-0.0.275": "d45c1f612018ead3c075f35d6aec107800d43ba92a3820314e2ca9612e2a8f4f", "aarch64-apple-darwin-0.0.274": "91cd4044b8fcd669b1b5c5b15c25f34b4e49b7ce80ed95f0c50aa3d95f91f50b", "aarch64-pc-windows-msvc-0.0.274": "69e1f717871440dc0f440d87d6ddb67fe0fb0f1009072ffefecd70e7f98f3b18", "aarch64-unknown-linux-gnu-0.0.274": "eff73fcb11c8468d92317e76e265088d4139fdb23f8e5e8e9900d3d5b8f08b51", "aarch64-unknown-linux-musl-0.0.274": "b5d2fcd1db11f140e8f5eb20374b07d54ab7a96282ebc1328b6e671a48e339c1", "armv7-unknown-linux-gnueabihf-0.0.274": "21e0f5e873c271a875430b1018b66f340acfc06aa1b6bd2d3569bd22717f56bd", "armv7-unknown-linux-musleabihf-0.0.274": "478e3ea9ad2999007343e442ee04f34bf81e2beb01e620f8d7629927ce4ccbb7", "i686-pc-windows-msvc-0.0.274": "a6ccd2a0fd8aa2b10015ed7659c41beace151db8c67db349609ebb921d000390", "i686-unknown-linux-gnu-0.0.274": "a60a7e62ba0d31f87df4716c975a79de4647143f3c82ad8b74d86349c5754d37", "i686-unknown-linux-musl-0.0.274": "5befb2e77bf36e11cf32e45eb554a2d98a9749bd52640981c036e8f028e1eadc", "powerpc64-unknown-linux-gnu-0.0.274": "c6c37c84ae0dbaf03679073b65a9cd6e9170c8f753c5324d101c35f7c3e8dad5", "powerpc64le-unknown-linux-gnu-0.0.274": "e724272ad16549c962fd2871d7e9390b0fc35caf957df4af3f0233a807f4c101", "s390x-unknown-linux-gnu-0.0.274": "cd5ac22f002dd6a37f9d365ed9f5b5c9e204fadb08750bbef940834e890a294e", "x86_64-apple-darwin-0.0.274": "5b86787e916ac2b71a321ba86037f6e71c11e900ae6fdb92206ec9bb391504c5", "x86_64-pc-windows-msvc-0.0.274": "48638029c3992691e6416a5b995c11ae97fa8bddd5bf9d46aa3c20cefc7e1929", "x86_64-unknown-linux-gnu-0.0.274": "63317fbc5cb64f79d7d2fcac9f47c4fe29f8a1cb569b1eb33136d61a6e9469a2", "x86_64-unknown-linux-musl-0.0.274": "a162b41a028a39d953f24247b226535dc751af0072621212f8363602fbcd36db", "aarch64-apple-darwin-0.0.273": "0b48c907fc7e3fd4c5b31c9f704361ba423318e4f8d83e83997395de1f2cc82c", "aarch64-pc-windows-msvc-0.0.273": "3a1515928066e95e0b2ab1a39ec0dfac8eefad3a962af31cdfb666e71d1b9419", "aarch64-unknown-linux-gnu-0.0.273": "5701e2bcbece23b469887b572c2ee9ae2800a0ad09e367841cf4e1e8d2ff53bf", "aarch64-unknown-linux-musl-0.0.273": "2665016e4d1f7469253a7ad95043de09a6ca9571492f1a52fad0104b4fc08550", "armv7-unknown-linux-gnueabihf-0.0.273": "57abcb9db10ce20425344a3b9ebae4c36c8c1bfbb983e8f0fc0ef9ca70f6e363", "armv7-unknown-linux-musleabihf-0.0.273": "c43edbe64723e75230cdb53e5ca2fd50b94dd4fe93b9fc7c2a0f84505f2a862c", "i686-pc-windows-msvc-0.0.273": "ed53068e1792df8736c9fed9eca9321ea8ff8c777b8c3094c1ec4301d8192490", "i686-unknown-linux-gnu-0.0.273": "4391e36f65f546e714bf7d24e1157567a4059b57d228c8ae75c34a3fc48f7d40", "i686-unknown-linux-musl-0.0.273": "8c897f3195697d5a7da2a38072af1620b6ae41d7ed48022dd7ed75b8a9328cde", "powerpc64-unknown-linux-gnu-0.0.273": "dedbaa0bc93d168d13eeedba75c8a293026bb471faf2d1a93126f89d453b5c31", "powerpc64le-unknown-linux-gnu-0.0.273": "61352deaeb20f5b9b320ecc1f633148a1677b154214f2717ade58934878fbf59", "s390x-unknown-linux-gnu-0.0.273": "da642760d77390077b16de34fcfdc84bafc1be558013abb6718ded18d892efe7", "x86_64-apple-darwin-0.0.273": "1452239d6249ffd786867d0ec8bb4b7ab847e52749662aa2011ea2f26828a1ae", "x86_64-pc-windows-msvc-0.0.273": "a90be0c9b63768e93732271e048dce94370d4e833adb8136e5b760e718a703d5", "x86_64-unknown-linux-gnu-0.0.273": "e16814b760d205955b075d49eab332c381a1ff209506af46eefdb0a4c972c3f8", "x86_64-unknown-linux-musl-0.0.273": "295fc04c7f4a8cfc083e86d48032d6216a4b1e19f6395503c36275608379f7e9", "aarch64-apple-darwin-0.0.272": "3945bf15d15370bbf25fb557c95c5c8e11f97393a9efda15d34e979e8da843bc", "aarch64-pc-windows-msvc-0.0.272": "afea2d8d645970d46eeff8823c8e299bab7dc0bca3f05e54afa03a31ecf7dd4e", "aarch64-unknown-linux-gnu-0.0.272": "74c0e269bc97f2a5038fa61f3dd70991ad5cb443792c8c6161b4b63e4b114cd2", "aarch64-unknown-linux-musl-0.0.272": "5d013adc02439520c9bbcd44abf94d57f944c9b23281889d1aeb750a670f5687", "armv7-unknown-linux-gnueabihf-0.0.272": "ab3d4bf31dff41b737b599861e10a7fa20fc99a83d8ea9be5028df7b9beccb24", "armv7-unknown-linux-musleabihf-0.0.272": "3638bd0f9c42e540f21d546dbaa56d288b526219324e98766aa73710a621bfd0", "i686-pc-windows-msvc-0.0.272": "57a194b7006bac7a0c5dd1f8b1bed636e05e599ec567b27992bf2a86b1d48806", "i686-unknown-linux-gnu-0.0.272": "5896cc005a23323bc7e4e3e5695cd4b2a1e379fff00f7d09cf38492008499c9d", "i686-unknown-linux-musl-0.0.272": "f25832cdb87e395a01aba0c5e90554e3ffdcd94472e941ebfe7bac38b9279a40", "powerpc64-unknown-linux-gnu-0.0.272": "74d0b8e244028ca5feda3698e5c29ae3e8de089dcb18dddb822c6d7479016a5f", "powerpc64le-unknown-linux-gnu-0.0.272": "36b42ba0bed87ac80e6b9150be3f8e4076b78cf856056df01ec1c2e7c39b70a5", "s390x-unknown-linux-gnu-0.0.272": "f5a5d79a9c0861ab88cf71cc6490978d9c239194cde087f152974d2a644ae98d", "x86_64-apple-darwin-0.0.272": "13ccbdbdc8d5817def3f57680045156074e730ecfe7364cfa5317f028e0663e7", "x86_64-pc-windows-msvc-0.0.272": "f310e50544fb63dd25bf35681085d12622b8a91790936b35b65467d86f47a899", "x86_64-unknown-linux-gnu-0.0.272": "e2e54c3c70c3f6bf8101ab2e4cb2d14aebda6d8ecba8622bd1cce22378641ecc", "x86_64-unknown-linux-musl-0.0.272": "5bf6cdf13d127d4ae7f166b1d03fb9ad996cfd45c7c9dd5f2f507efd5293c978", "aarch64-apple-darwin-0.0.271": "23c63e5b7446a2771fc1a2de0d964bf76e1bd9cd207de11d5cc88b43599f5d24", "aarch64-pc-windows-msvc-0.0.271": "09ff69a213ea6babe078e7c34dc770f04bcb438cfa29cf0a26227643d3e39176", "aarch64-unknown-linux-gnu-0.0.271": "f78a7275117a680823d302b967c27a89b82edeac546fd757ae80eae668127ea7", "aarch64-unknown-linux-musl-0.0.271": "57c0cd5fa13e0803497335ed7df1e7923218377113e7f8dd18f6097e46f6735d", "armv7-unknown-linux-gnueabihf-0.0.271": "4be39077d0b8dc68a55660bf2a7ac0eed15b88fc0866268746fc3006f0a57d32", "armv7-unknown-linux-musleabihf-0.0.271": "4cb4482156aa0ca90ebca7fe4daa948a8aed8cd742c956a0a60df530e6488211", "i686-pc-windows-msvc-0.0.271": "0370838a1506285c99c3f35ad991cd8fefe349542359c54dcbabfcead432aed7", "i686-unknown-linux-gnu-0.0.271": "3bd76f023a1401cc2b5d11601ccbf079c1cc6538b3c3e8924059cf42cb6fa9cf", "i686-unknown-linux-musl-0.0.271": "ed446bf06cfb4c417553842fb6c156de6664768071b07cd22be4dbbdadcd0066", "powerpc64-unknown-linux-gnu-0.0.271": "2d3ef9b327838176765b9670257d78e4abafbae5913eda0e20e85bc0a41ddf8a", "powerpc64le-unknown-linux-gnu-0.0.271": "72c461141e073c3d80bf97ec91e84b8422c52becb50a028bf91f5aa76a922985", "s390x-unknown-linux-gnu-0.0.271": "bb7d293a00da46b5453eb9bca071be1d1b25fc7aa7d2b9c457f6ff15137d9017", "x86_64-apple-darwin-0.0.271": "737d7e6900010995757f709c4ed19279e038d0bcaebfe4b40f85a330a4ca7aca", "x86_64-pc-windows-msvc-0.0.271": "56ec98ed1e54a839171a74eb3560714447648d207cc50aa950ef9a61957dd7bb", "x86_64-unknown-linux-gnu-0.0.271": "b66fac6c805584d3c858e35dacc336690a99530ddc113f78dab0cd3b0559da25", "x86_64-unknown-linux-musl-0.0.271": "9d83bdac9f2adaa8eaafb2ab5912e03d3a86755a20db172522db738ad588e9db", "aarch64-apple-darwin-0.0.270": "fa6a192c9933078c137a707096697a4a647995bd0c2dc0dd73480aa050a649cf", "aarch64-pc-windows-msvc-0.0.270": "f1825378565ec0002bc8b012086ed4e3575643812617ce7c90605b0b07d3530d", "aarch64-unknown-linux-gnu-0.0.270": "36ff9fb39e5899194adc1332e60c8a0b6c4c6bfe4a2b201f56fb0b46a518e25c", "aarch64-unknown-linux-musl-0.0.270": "ef02dfd372a58724c589d8d0647dda91b06a65038d151f7d6f4e1d97a69c60f6", "armv7-unknown-linux-gnueabihf-0.0.270": "092bc76187eeee66120ee277676edf4fae32a39988b83c0cab22d8380c68569a", "armv7-unknown-linux-musleabihf-0.0.270": "238994376d5bdd28f2f7964c1987a850849e6c3b85780f54e5ff72a10d4075a6", "i686-pc-windows-msvc-0.0.270": "9d77a9a691bb380a34001b0f3db222491a4696147fa29c853d0bafa629fbb26b", "i686-unknown-linux-gnu-0.0.270": "bcc994f1514a0f9e0c5b62fc30a556ca00318466576d6881b4bb03f53c1e8f63", "i686-unknown-linux-musl-0.0.270": "4f52fda4a181be94c5dce83e118fd0726d5c32758b4e70da0a196e50e56f3302", "powerpc64-unknown-linux-gnu-0.0.270": "b19c6e879591ad7b373063b545b64fb517aa9680596919a6cb9e15b248c99cbe", "powerpc64le-unknown-linux-gnu-0.0.270": "779c4e3df896298f0cad9ca267c0096dd1dd20ed43a995a290861d63154fef8c", "s390x-unknown-linux-gnu-0.0.270": "a50e9c2c9f215135d38c71973425d42c286ac9f87fa5852ce90d646613147ab7", "x86_64-apple-darwin-0.0.270": "26310ad5dc648dcb451d81809c775c9a07cde120243b0144c5c81265c8e7df87", "x86_64-pc-windows-msvc-0.0.270": "81d197007aefe86a54e67ccc79fcce7966f9b2b3c00625bddfc6936141b4d6ab", "x86_64-unknown-linux-gnu-0.0.270": "282414ad1178708ae50e92b1316b58b37fe807ed2e68c33b3ffc840f6c9fe27b", "x86_64-unknown-linux-musl-0.0.270": "ce037babcf5059fb691baf188997e0197f4fcdc1702f35a133305303f8b3279b", "aarch64-apple-darwin-0.0.269": "2678113d427b28fcb199711653df9ffbfcafadc3a6fd1c886473901e3f4149f3", "aarch64-pc-windows-msvc-0.0.269": "af044c104fc218d5c25f5d2f62592396b82547edb00ee027672f7271f0584d5f", "aarch64-unknown-linux-gnu-0.0.269": "998e3c6e737df6eeb6e819937c13e4301aa4229a43ee28f210edd98aa53b468f", "aarch64-unknown-linux-musl-0.0.269": "99b7dbceebe620cf923a1cf874597fb36b0cc7aad36bdd245c4fd1993164f4ac", "armv7-unknown-linux-gnueabihf-0.0.269": "c76714c545b7179110a9f461bc67cd97f719e8a3b7999dddb504a611899f994b", "armv7-unknown-linux-musleabihf-0.0.269": "12e13066522745091ef8142ce9f0fc04f5aa53eea03bdc8e55ca9aebb67f9f09", "i686-pc-windows-msvc-0.0.269": "23eb54812cae207321cee434a68a736ae939da21bdb080e609c5fa3b90106131", "i686-unknown-linux-gnu-0.0.269": "4f1037412b424088234ae452a30e8390a0a1f361f14398f1fb411d56e8ab2a71", "i686-unknown-linux-musl-0.0.269": "bf2c1d2f0d18609f71d3bfa1a0415337619da3d945ccddfe52b58b18dd87e949", "powerpc64-unknown-linux-gnu-0.0.269": "62529232adb5d48eeb57ec8a62c87e91f50e82de08019846d7c992072191c97b", "powerpc64le-unknown-linux-gnu-0.0.269": "bafc6a21e0be3ce5fee5d1a978f5ab3c52de83551d5de734327443ef20664df6", "s390x-unknown-linux-gnu-0.0.269": "a8f43c1b851330f7a38939a9743117aa1c8e44fb5ca1cd43066d76c1aa280222", "x86_64-apple-darwin-0.0.269": "031f5630c88cde290080d04b3090dc24338d6adb5da575aae3695a319d18634a", "x86_64-pc-windows-msvc-0.0.269": "ee64eda2a22a316ad0c8b75cdc63038a284d54223b58a36c68c180b81b759731", "x86_64-unknown-linux-gnu-0.0.269": "6b2c8a9099c01e17d845562803eb7fa31d815d357f3a172467a07d0bb8a23c18", "x86_64-unknown-linux-musl-0.0.269": "270ac70b0d81f2cb257bd252cb9a9eb308ef477e9343e11d6deb32d972211e60", "aarch64-apple-darwin-0.0.268": "b548989fe66dcc097b8f19d370133254cd1f1345fdeb368ef58c779b20a82e28", "aarch64-pc-windows-msvc-0.0.268": "cdafb1ecbcb2f10f1035b2e835a4acc7aa4141c7c258f781f7247d6a96b7f9a0", "aarch64-unknown-linux-gnu-0.0.268": "c7bc73b0ee6d5b3291ecf1ec899aa00d9dc0c175758c17a765fbd9a3f84d66f4", "aarch64-unknown-linux-musl-0.0.268": "b162923dc4b7cd12d9c3b25d24c3bd677a2820d123dee694cb7d32e69906249e", "armv7-unknown-linux-gnueabihf-0.0.268": "1801d6cd8648a243e1caab60c8e9556e1a8261f7d340c5c5a90a80c87e577ae8", "armv7-unknown-linux-musleabihf-0.0.268": "e609244f8d6d950084181241bfa1852d631edb5c232e41512373d0b94ac632ae", "i686-pc-windows-msvc-0.0.268": "ddea2616787347525ec83f8cb97c73267880674bef60d4664d07271cc9159a22", "i686-unknown-linux-gnu-0.0.268": "98c1ebe43e1a86f223701a6d7a6e7e5d7bfaeb0cf2987cc23322f16806ac6713", "i686-unknown-linux-musl-0.0.268": "dd3c639dafae07e741951407673713f32d05037f4297986924532485201075f6", "powerpc64-unknown-linux-gnu-0.0.268": "6312a81a3aadf7c604b661bbd96b3fb855650e248865ae64d6ae5bbc7008a646", "powerpc64le-unknown-linux-gnu-0.0.268": "cd1f1095eaa15792e2aba267b46565101304684644a49302471c24008a6bf028", "s390x-unknown-linux-gnu-0.0.268": "a059bee64d05116183f45ebbd459744ac871f3317af4ac673cd6bf05c359d891", "x86_64-apple-darwin-0.0.268": "b2ffe2a66cd8dc92a6e11c2b4846939f310b2fd7c098f6b58f9b7a8e28ccecb3", "x86_64-pc-windows-msvc-0.0.268": "30d287f272f7b3c02bf46421022e5cac6839cfd5e38d17a0e23ecf7645605fb4", "x86_64-unknown-linux-gnu-0.0.268": "e75a69ce29b277b37814aeb6ab22d3815c35dadd84817d8549b65e1e45b6ef6e", "x86_64-unknown-linux-musl-0.0.268": "3b6b7a8199f1dd9462001af9f370bb548a59b1939a285a470ef31097746dd455", "aarch64-apple-darwin-0.0.267": "458402c2d95dd00d1e89eab50cac33477d0c345524bad494a2ccd9bcc14ed531", "aarch64-pc-windows-msvc-0.0.267": "4884d05bc314df27bcb0c38cef4db56ffa24c77bf12b2705c6e5fa1fb59635dc", "aarch64-unknown-linux-gnu-0.0.267": "6bcd92475febd929ba89add3d45d6ffb63db6ef741c5b3cf2087a639cb915de0", "aarch64-unknown-linux-musl-0.0.267": "c39d036f3cb43c07d822ef856c16392d104d2e99b1df050b56d342460603e50d", "armv7-unknown-linux-gnueabihf-0.0.267": "688e2f237d0931f2dbbeba5942e2cfa52e75f5621fd16e7361f00d6239684284", "armv7-unknown-linux-musleabihf-0.0.267": "58a0f6dd8c777dde255130879888d78b64adc6bab0c1632c7eb08e0145a1d850", "i686-pc-windows-msvc-0.0.267": "6b439b2d7f77dbecbc27df3bf5e59c92025a86ce28a389b3f1220dc1af569944", "i686-unknown-linux-gnu-0.0.267": "c87da9f9ed2b00d2561ea62c9146937f5c87116a7e4a64e6482d0a3d31d3b26f", "i686-unknown-linux-musl-0.0.267": "ab331f40dff05835ef45c25992b4bdbd51afd1aea6f9e852a68c2cba84286e06", "powerpc64-unknown-linux-gnu-0.0.267": "6dd92f9e16b58153b9f6d46bbbde042448487000253e831811d9efecd1a741d0", "powerpc64le-unknown-linux-gnu-0.0.267": "2d61096af35557d16d7e33146ae832e6ed3503ca4c212b03a0fa6a225599248f", "s390x-unknown-linux-gnu-0.0.267": "abdb8a29a64702485791415ff05c890c8951b83376e7bc219c619ac2b476694c", "x86_64-apple-darwin-0.0.267": "cb5b2e4a109c4398019a10c41a59ac36ef6b07e5e56b46acca8959279183b1ff", "x86_64-pc-windows-msvc-0.0.267": "ecedf3c4efa7b0a728ee0ec201c96e1baf6e943e9d6749ad36261a327ce86bbf", "x86_64-unknown-linux-gnu-0.0.267": "83a7dca3f983795ee23b00a4b558e6b5ce925f3a1054b41eb12e51908412bc7b", "x86_64-unknown-linux-musl-0.0.267": "9d779094f934d8d6171ae4572a2732cf869c425e1ecc099fe9e6fc2ab02801dd", "aarch64-apple-darwin-0.0.266": "2d408cf26516c4e9d8f13f6a03a60ded12ae8de3852ea1cbba8fa11a925b6ea0", "aarch64-pc-windows-msvc-0.0.266": "371f2aeee5bf78a628a93593aa3073f803b5d068d01fbee4c8f8a0c74098e6d7", "aarch64-unknown-linux-gnu-0.0.266": "533c9b4805359e92ff21cb1ab197fd40d161c36b009a11a6eec460b936fff05f", "aarch64-unknown-linux-musl-0.0.266": "1a7adcff9a535f2445428de6d74e4a0d8bf6dfdf2dfa5627a92d7e940bf79654", "armv7-unknown-linux-gnueabihf-0.0.266": "a02f881f5192f16c3f233b3f445d3e27adcf312bf56368b32213f70892cb67dd", "armv7-unknown-linux-musleabihf-0.0.266": "f9ffe035fac153e5eacf050146ede82572ea6e0298ff86a2fdd57105bb788b1a", "i686-pc-windows-msvc-0.0.266": "c9eb31d99b47a48f47310eeff844306e78ba10186cf735531454088838cd5f57", "i686-unknown-linux-gnu-0.0.266": "6b4074b4fd916c9ce881b99b04c0c1b6e0ce7d64d64bfe1686b77bf90f69ae07", "i686-unknown-linux-musl-0.0.266": "4135ee324f8e7bfe94b06614a0851192d4c5acbfccc08fec2459844ab2ef7293", "powerpc64-unknown-linux-gnu-0.0.266": "1391b6d7f938cfc1c8abfffd1168d512aac52f259fa0852dffe5e274f4cc7eab", "powerpc64le-unknown-linux-gnu-0.0.266": "03b6726be6cb183477564b0aeb6ea4fdfb4befff0056db3b8850ef3a19268ee2", "s390x-unknown-linux-gnu-0.0.266": "5c31b618314f680cc60ac904a2f6eaaff9a85d60508f2d7a55d4ec6e209df7b5", "x86_64-apple-darwin-0.0.266": "f3a374128bd393d19611b8069ecfbc7bd15e0dab74988d92fe63266988e1210c", "x86_64-pc-windows-msvc-0.0.266": "b489b051ed9d520b2bedb18dffd1b91e4d6a06d835969db3f64043c34d387d51", "x86_64-unknown-linux-gnu-0.0.266": "636f54554d3988baa39193263ec608b8dc0abb1b0bbcc24d3e47415da1f15d0c", "x86_64-unknown-linux-musl-0.0.266": "aa976ba339b38e231ab77d494fae1d909e3e9b09639e50330516b50ea3b7d897", "aarch64-apple-darwin-0.0.265": "83942822269799ae1eda03731acc0702ac1465e7edd183c7ea0092b30f7b1d92", "aarch64-pc-windows-msvc-0.0.265": "d445f01a18e4099588e93dd4f3664b89c03264155e14bb72e32bc80c15d6dcbd", "aarch64-unknown-linux-gnu-0.0.265": "66c7c45befc344016b191272dbe5cf88ea9d222c71f1825b04339dce8c30a82f", "aarch64-unknown-linux-musl-0.0.265": "140133a6e1252348a86b2d9674b819001cbd5fce07c1cf5f31c2836a49a8f89e", "armv7-unknown-linux-gnueabihf-0.0.265": "ac049ac767459330819f3aec77b4ed669a0cca78750e672cc770d987c04a1160", "armv7-unknown-linux-musleabihf-0.0.265": "8e434e23362294a109e7d4ad6c3bab163edf9f8219b32659e8315b98e05a44fe", "i686-pc-windows-msvc-0.0.265": "51c4517d49811536711805e598262b41e87f713d30570bcd7609b8e48047ceb1", "i686-unknown-linux-gnu-0.0.265": "a3a309e9a57f18edbdbf60ca1ade5402a4ff746e67ae4d9ff997a74f5d2defbd", "i686-unknown-linux-musl-0.0.265": "147f9ffb0a8259662f42267ccf2e2b24d4db96a527040551fe725275ed196963", "powerpc64-unknown-linux-gnu-0.0.265": "20fe022032dd52977f27e750bdc6cacf3ae030a449c78b92145bc2a6ad12172e", "powerpc64le-unknown-linux-gnu-0.0.265": "4b5cf061ee91afcf7423a71b00cc52d5c95c6fbf975a9dcc3941626ddbf21ea1", "s390x-unknown-linux-gnu-0.0.265": "6a7a122362fbf5ce5a1d36f001e06180d2e4ddbc36de6118260cf89e67713667", "x86_64-apple-darwin-0.0.265": "5049383030dfa065cf05bd175418b11f3fe921eeefefe15cbcf3e163212aadc5", "x86_64-pc-windows-msvc-0.0.265": "d79f8a6c14cc618afbc688613b3a3a3ae6460c73e76150b595344305cb553d11", "x86_64-unknown-linux-gnu-0.0.265": "ae00c9e83902b1418a56452fedb9d53641d4ea957bb0fc3a88b6b8e1155e672e", "x86_64-unknown-linux-musl-0.0.265": "30f989f9651b279be036464a33123dcf9521c6d5c9a38a81e8cc15984d82baa8", "aarch64-apple-darwin-0.0.264": "a348321d0d6ee7cf1e5831cc3901b36f2ab36dba211fa593a71d9514dc701eff", "aarch64-pc-windows-msvc-0.0.264": "837a74d5c863e37e48f0916f2c1630f1ace340eda0c58d91c118df4351a6c527", "aarch64-unknown-linux-gnu-0.0.264": "90792eca06cab632a3a3c8bac12bdd21823b8369d61285835371de238abd7175", "aarch64-unknown-linux-musl-0.0.264": "4d3cb9f4edcedf689dcfa4a190cceb9453f8de41c0fd31eef692bd230a30ad0c", "armv7-unknown-linux-gnueabihf-0.0.264": "de5d22aa479cfa70355578d8a260461010fc0010614c8412f6d02bce70ef506d", "armv7-unknown-linux-musleabihf-0.0.264": "c5610368637ce9dc424674cfadf965f18921e3d5f67ea7fdba167b80e5c4bcb1", "i686-pc-windows-msvc-0.0.264": "498fc60b6ef8ebecd8430ad2a5eaf04945214f3f2e3b60452e9c55efd9427612", "i686-unknown-linux-gnu-0.0.264": "dfe7e082f5f552da6ec7e808ac36cf1778978369f7512fd5aea81abe0e97b669", "i686-unknown-linux-musl-0.0.264": "bf0799b6ff4df674d9b48592025db6dd3809af8245c5dadffd540101ee8481bf", "powerpc64-unknown-linux-gnu-0.0.264": "df2ed37e33bc9c43250d1d295be9cdca3cf4115bfacc1e30b99f0c2ded2a5f1b", "powerpc64le-unknown-linux-gnu-0.0.264": "26a7b2d8dd8c8e32522ef5f213e205ff9e75194e9b3ff2293590f6e41197519d", "s390x-unknown-linux-gnu-0.0.264": "e21e2a46b3decd1cf9f35bf3991c6eee929bc19d047fbc7c7e5a15d10c1a039c", "x86_64-apple-darwin-0.0.264": "f0307846e729e5de07c2a02524b2679ac7cf604fae9496fc81557435648173ef", "x86_64-pc-windows-msvc-0.0.264": "ed21b7c61839120e4c74c03e9a6c24d08e6c39bc2e9c6836b338a6b0b78797b7", "x86_64-unknown-linux-gnu-0.0.264": "f34635d479ca1b57badd56789ad14486f46fbd9277f676ea379d6f8c07a672b2", "x86_64-unknown-linux-musl-0.0.264": "5af656fa6a8bfd8d2732a66cd85e48d435c5a6e3b926a65c9d74f128a352f512", "aarch64-apple-darwin-0.0.263": "00bb52ae1c5ad6af9b2f58a9fb0ff27c17c09f20a6717716d32e1f2e935a855f", "aarch64-pc-windows-msvc-0.0.263": "5138f3fab30b0990fdc7be3c0dceea449d83be3552ab7852db832cc11154a86d", "aarch64-unknown-linux-gnu-0.0.263": "024d0ba5297a527bb86a4203b3a844619561d0886d03da1439f295766b71478e", "aarch64-unknown-linux-musl-0.0.263": "62791595743d875048c54f985e3f98f1550eb55f2107e94b7a7318002db3b7b8", "armv7-unknown-linux-gnueabihf-0.0.263": "a08da98c82c3f7df21e5723b59364245fc7d675746d4070a7ca8c0b63edad53b", "armv7-unknown-linux-musleabihf-0.0.263": "f4c7075678610f177483f046ff2f449b3e92c6a4527d96c65dbb1fa1134244ab", "i686-pc-windows-msvc-0.0.263": "54c21794aa90de63a14088541aa58d95333816a9f876104769c86a1134539e25", "i686-unknown-linux-gnu-0.0.263": "5bf6651d87d65d96ce633de09b66e4c7f79825bd0b392b927a9a15bcb6ecbe59", "i686-unknown-linux-musl-0.0.263": "6e8cc672427f0d678f0b602422492658ba3fb1a22e2e214f3b5a0cd5d3c2891b", "powerpc64-unknown-linux-gnu-0.0.263": "ed15ddf62cbce308e09559835c08527996871f34c7a7aaf98187ea2b5ab28a0b", "powerpc64le-unknown-linux-gnu-0.0.263": "b65d31dd3004ac5de377077bc4cf7b18d31f49196788799a64420da3dd0f11a8", "s390x-unknown-linux-gnu-0.0.263": "3d6de8aac762713c8e42e6c9e28fa75b0caeb56a616c8d286f004c64faeb0fe1", "x86_64-apple-darwin-0.0.263": "3f05e004aa8e6a4b2084a5bc032e0d5ba06cdf799e17269febdf6f39979ed151", "x86_64-pc-windows-msvc-0.0.263": "134f04f5e78f7e2e9c46bd0ef56f279c7b6a5cb5cd95c113724ca5ae7701b3e7", "x86_64-unknown-linux-gnu-0.0.263": "c665b8175e0d5b648fccd3fafe24c6758a06c163bc5b5ff5e029a0c01ac05bde", "x86_64-unknown-linux-musl-0.0.263": "83e77f7c57b999d0632cb1138cfa11c6c6d5bd58ef0b4414ac3639b23cc3edc4", "aarch64-apple-darwin-0.0.262": "3c14c03f84ed5dd7b41ea373dbd7e55c55ff9b57673c11d7dd811d8e6fad564e", "aarch64-pc-windows-msvc-0.0.262": "4d5063a05c54f28e1233099f588c7ebf886c771f492b9c62b4b872b08ff070de", "aarch64-unknown-linux-gnu-0.0.262": "67bce4e61408e9b8df2482fd282dd2f8b5eac214ab8a7c5a95c818f436a4f09f", "aarch64-unknown-linux-musl-0.0.262": "709c92fd0b4ddfc662a7da8423092093f38ef016f538ebe09f39b3c02d9866e8", "armv7-unknown-linux-gnueabihf-0.0.262": "4703f1eaa836b8e971384039223424cd249df0354836169af4fdad0f6cb9e871", "armv7-unknown-linux-musleabihf-0.0.262": "6ba65869293d8ceb48bbb6989fb5a5294586e0758bb00da02998d56b2ae60a61", "i686-pc-windows-msvc-0.0.262": "e1d569ffd4c83ee2f37857b21b3bcb3d74271968d0e0c55120c6a0bf4ca7612e", "i686-unknown-linux-gnu-0.0.262": "fad035d0ee9f784ead5b04319fb2a3ec6a540ee7bf20c11dc68fbb327e73ae8c", "i686-unknown-linux-musl-0.0.262": "975f12d9f6108c9ceb5b329ae2d716e04a62716d86b3600ba24fb14b570482bf", "powerpc64-unknown-linux-gnu-0.0.262": "b8e38964f5d695b5bb58bdcceb193c180220b846fa456df3237aec195b5f8cb6", "powerpc64le-unknown-linux-gnu-0.0.262": "84b55bbe1ebe4ef1ddfd365a5d762739eefe2551130ef3459a593c6af8682df5", "s390x-unknown-linux-gnu-0.0.262": "ea7bb84cadd5a068fb29d0f20061d039fa55710fae8a56752ef91b698d5eab02", "x86_64-apple-darwin-0.0.262": "4dce7db9aa7ae1488f7fb96abbb58e8379a740b1bff537fe9f78f8a9a4f177b5", "x86_64-pc-windows-msvc-0.0.262": "10780654748b938f3e84742d8f0c6ae07dccbf5e8bfe6e40505c6c110df4437b", "x86_64-unknown-linux-gnu-0.0.262": "429381fa49c403508ad590a02d666d1a9d9f200ac004b24789e3227ee214442e", "x86_64-unknown-linux-musl-0.0.262": "888ddd87d31922eeb90a619e200b5659322621ca86845a7aa977ea95d1ed7290", "aarch64-apple-darwin-0.0.261": "9ab8cff7529aff2a2ab69a1c735e7471d7af813e780c6318e04ac95561a2be84", "aarch64-pc-windows-msvc-0.0.261": "8f11aaf97fb6e50a0d3690b30ef98872c2f5137e0f49e80cf6f5c99e6f9afb5c", "aarch64-unknown-linux-gnu-0.0.261": "8562f36bbc8a98d899f5fe5d92c36597d33ab0be4bfc90df50d5fce57df63ab5", "aarch64-unknown-linux-musl-0.0.261": "526d82550dedb1d45eccec92df129f57ac6244037291d8cfe371ba6a5e118036", "armv7-unknown-linux-gnueabihf-0.0.261": "6d71335d75500d63ca98795014a2e86c78fd61587903b23d6a24fdd083dfd2b4", "armv7-unknown-linux-musleabihf-0.0.261": "e6cf12bf74d047660b3176d5ee63d93b8b5f34bf6c3751a5ebb12c2f9e90f7ab", "i686-pc-windows-msvc-0.0.261": "51b87adf039a466d1802ee4b8274362d7129a74abd75ceb8340daaa1137eeefc", "i686-unknown-linux-gnu-0.0.261": "c42f6ac5646c626de75dafe45a4b345c06c02542ebcbc589ca981ec17d2e23b3", "i686-unknown-linux-musl-0.0.261": "e4042290bc5eadf9ef3333e1dc561d7eb408d208d58b011224dd17bc2f17c5d2", "powerpc64-unknown-linux-gnu-0.0.261": "3b6d47429fc9d531a9d87c8ee9b05554a82f00d1d8b879d4b527fa528b42b204", "powerpc64le-unknown-linux-gnu-0.0.261": "4a848a0619e3e66f328d77fabfeeb6b28a3edf9cf3aac1ef3ddbe0b6355f5991", "s390x-unknown-linux-gnu-0.0.261": "093a23f644dc89ceee461da094ce4f22e3792b20d569eec4112b4c3a26cc7696", "x86_64-apple-darwin-0.0.261": "60e9569055498b7b83ca172af9f67c653e9618fd2c365e91b204abaac8890cbc", "x86_64-pc-windows-msvc-0.0.261": "9eee36da8007e3e956df48c1b7615f72c9bee3b004481e1c2826aa24f39887f7", "x86_64-unknown-linux-gnu-0.0.261": "d831f1939eee7e45ebc58992133cc1b79550ebc3cbba97438c02cc17873c01ca", "x86_64-unknown-linux-musl-0.0.261": "26254ee3aaf6ce38683f7a3b79abf309265b32506e3173808adade9d7ba385b0", "aarch64-apple-darwin-0.0.260": "4e045df5e55f1e23b34910865fe66c8e9d4ea98dbdb5320fc8ff09b8c337d69e", "aarch64-pc-windows-msvc-0.0.260": "916407b0e06b500c4ce0838f2026f5caedefbbb7fd1d3c34d12bda75f142c65d", "aarch64-unknown-linux-gnu-0.0.260": "0e32dd30dfa0cd322f35f2c08508734fc04a76bcd1708284aa51cec3bfbdbb49", "aarch64-unknown-linux-musl-0.0.260": "b77f8242f6d71348fb3803d67f1e2db7dc049f4473824e710eacf6bc4d301121", "armv7-unknown-linux-gnueabihf-0.0.260": "6c0b4807308605f3b20d4a971183a9c7a03b822af00e00010ca26b4a5aef5515", "armv7-unknown-linux-musleabihf-0.0.260": "c734f1c45c7fda8ef558140144b2c5b27b6864d4454940ad6930a0125b85ec0d", "i686-pc-windows-msvc-0.0.260": "b2e841cdab591d5a5c05d4b8f23e918258f4ae8a67f6b7db9a831368e09b5d84", "i686-unknown-linux-gnu-0.0.260": "05cb02b4ec755552d849896b1f830dc330145ecbc143b62e06b77ecfe4cc3ff9", "i686-unknown-linux-musl-0.0.260": "de3145f5b4214bce3ba93f22017763b1d94e6889b9d8263ab3852e4f2f2f40ee", "powerpc64-unknown-linux-gnu-0.0.260": "2e41209db185cd6d46eeb656c7e98dcdcb44234d11456cb7cfd1894db358b9f9", "powerpc64le-unknown-linux-gnu-0.0.260": "b4000ff9234bf4899bf5ba5a8ec67cbf53565c757c857ff659070cfc26f080d2", "s390x-unknown-linux-gnu-0.0.260": "06ec0c002bb6394f72508c9daa218196288024a8f4858b722db3d1164bfa9a32", "x86_64-apple-darwin-0.0.260": "3b251413bd5dfa60997489b33024b5f596cb3781f5cf3763529fb24cd97059c0", "x86_64-pc-windows-msvc-0.0.260": "4ee692a048ba150287edeebc788c80ea6093d9de6b479bf206d77b2d99470b93", "x86_64-unknown-linux-gnu-0.0.260": "abb106ee7d1434faa733e6dd442b1d306fa32e0840fde24fbbf96c2289968c63", "x86_64-unknown-linux-musl-0.0.260": "6e075c0f04864988c8d48173d4a8b6c7caf6cc23c291d38b76b0f43fbd11cb94", "aarch64-apple-darwin-0.0.259": "bae38bab54015786c3eac853207eb499edc01860d9c12a512da8ad5f60ded3b6", "aarch64-pc-windows-msvc-0.0.259": "59656e073f16066c8d64dfab14e4921cf79dcb8d65d0357a6161b62e2388831b", "aarch64-unknown-linux-gnu-0.0.259": "80789271f2340c97acdedc4f2d0b8facf02595ae2a37011cce97b283058b9706", "aarch64-unknown-linux-musl-0.0.259": "b2e6a5a823fad6606cc4ee02b37931ff51dcb3f7c8dafe04b607af416d7f9a9c", "armv7-unknown-linux-gnueabihf-0.0.259": "2bdf7aa38cca06efc85712e1aeeaf6672dac8a72ae6c2f92c4ec5894d3d1ade6", "armv7-unknown-linux-musleabihf-0.0.259": "14e740af6f494d218928fde27cd66fe37b23cd27ed72dfe9cb515263c33482ac", "i686-pc-windows-msvc-0.0.259": "bd4781ddd381f083b23d17346dfeb1d4fc1156d3fac59778a95370eafdee1fbf", "i686-unknown-linux-gnu-0.0.259": "cc3a98dcfb33362cc12885fd049d4a04a0c341184d846852a1bee511c13fa285", "i686-unknown-linux-musl-0.0.259": "c88297c66c0162bba7f11ee368c3905f5f8adc028248d65d3dd7e9098af90c2e", "powerpc64-unknown-linux-gnu-0.0.259": "c919da2cba9760cfa7c4e931ee7c4995e78bf0b0bcfd622b73f28c549ca39583", "powerpc64le-unknown-linux-gnu-0.0.259": "6e23deceb8f757a2dbe68180a3bd39083278ca685d1ce05107bcc8a169d2da11", "s390x-unknown-linux-gnu-0.0.259": "5f1e060f38cf8ed46017c09aecc987648aa78fbc1f27465877107b5e1822d850", "x86_64-apple-darwin-0.0.259": "4812efb3588bf7ab94f8c4e3c3e01527d354d8bce8d527b47c02876e5c606812", "x86_64-pc-windows-msvc-0.0.259": "4047f68358795a1d3c6b2abfeded039fa3e00df61f50c6c5775f5f73028c5d7a", "x86_64-unknown-linux-gnu-0.0.259": "3fb62b93f793bb09f3c9d5b55e51b4e0c563c9465833d9ef37cce5e358a34be4", "x86_64-unknown-linux-musl-0.0.259": "de5e4e62c76bd40f6e8d7170c36f14db6f1fe707f02397556fb1d57c8d6a2f1f", "aarch64-apple-darwin-0.0.258": "d74c9689395e43565d9a013148653a6d1e3e96bad987d896d008330d22ebbd27", "aarch64-pc-windows-msvc-0.0.258": "fdb09c7f312078bbaaa829ce779053c25a9f1a5f4576c79b6ecd36726e81f681", "aarch64-unknown-linux-gnu-0.0.258": "d4919e286d6c78830d5b174590d84be1cd05873f8cf277fbc53797b33e6864d7", "aarch64-unknown-linux-musl-0.0.258": "104cd762cd3e304e9712b80c810a7a63f6fbb343c12a9b25bc57c756d11d7553", "armv7-unknown-linux-gnueabihf-0.0.258": "5c3afd2138ec8b2b84828249a941950f560bace3e0028cd945083ad1159cd1aa", "armv7-unknown-linux-musleabihf-0.0.258": "32b0a9ac2e230758315b03fe4bb2e2e30c0d349642711c297fc575fca9319f91", "i686-pc-windows-msvc-0.0.258": "56c99a61e4217e8dfbc966c6216a032f3925d5129ae34fb6fa52e57212a3869e", "i686-unknown-linux-gnu-0.0.258": "d9fdcc96faf107c26a7ef7f651391e84b54a26f0100d8170e5b647447a653338", "i686-unknown-linux-musl-0.0.258": "90b6cafae07dbdf7fe5e9157a626b29b90f8327601d5a133b00288708bd5da7d", "powerpc64-unknown-linux-gnu-0.0.258": "2b334c74dc2e2b11d2eac46476878fe3cfa2fbd896e11ce4856b9a1568d0bf0f", "powerpc64le-unknown-linux-gnu-0.0.258": "8ec6822b5019f3bfc303580b973de2c1d273aff4af28da72a7e45f185b1fca00", "s390x-unknown-linux-gnu-0.0.258": "e9449538bd280bbdba680933660c35702cdbb696ea2562d240b782ab1ea65f1d", "x86_64-apple-darwin-0.0.258": "ff4145ce090ec9b53c65a42bbf77e403243ceafe2d7f1dba5395980a285893cb", "x86_64-pc-windows-msvc-0.0.258": "166860009e58e6923dfa700b9df5f51a85aad23df6798d82614f46cd0aede60c", "x86_64-unknown-linux-gnu-0.0.258": "adb433f87a26adc1327510362f08b5bf5da62dc04a565dcf5b7bc0eb0bc365e8", "x86_64-unknown-linux-musl-0.0.258": "bd26e94e8ae4abb791a9f18bd91e3645da08d6e42f3f08f993e54aa111d30621", "aarch64-apple-darwin-0.0.257": "57ce20616df5c397d93ba9652df85eeb8a7c5aa7edf9987907f9301be2216442", "aarch64-pc-windows-msvc-0.0.257": "7dba8dd5bb3b869de736f2315e93571e03f81078574000f3468806e8b4756164", "aarch64-unknown-linux-gnu-0.0.257": "5b4a8154c02e8ee3fc692473d61ead31315383571f0388e8af7f425a7f09cccc", "aarch64-unknown-linux-musl-0.0.257": "da94db072260c7114b91b3fe4dcc995125f57b8a388f092fcf6c59db21143a1d", "armv7-unknown-linux-gnueabihf-0.0.257": "bb7222e25f120179742432e93ee1a2d2c36532735cd4d32460606f570f643219", "armv7-unknown-linux-musleabihf-0.0.257": "44f484b2b11056df2b6465defc1050ec17363f682fa3f523b4b1c29d7cf895e5", "i686-pc-windows-msvc-0.0.257": "d847b4cb79daee62260e4edbb675861b26e36ab3212664dd1193785b91a09492", "i686-unknown-linux-gnu-0.0.257": "e81f5865b45ed74667873c805d2b195a02d67cb7e8f70697c1e24e47c3539120", "i686-unknown-linux-musl-0.0.257": "7929039ed52e0309b0be0b780e1c3810ba13c512815366ef6b2ca3c925911e0e", "powerpc64-unknown-linux-gnu-0.0.257": "036c8af547592a9b0cb967b1d7d0b3d4ab972b61f0b0baa7c23ba4a454214c41", "powerpc64le-unknown-linux-gnu-0.0.257": "89dd5540818a214c6ca2ef6c21528e682a23cf5d6ec47bdbe301d1b0ab61f584", "s390x-unknown-linux-gnu-0.0.257": "4bff9d5bb018aff438376fef860f331ef894fa983d36cd9ba1ce2a2d4546c69f", "x86_64-apple-darwin-0.0.257": "8725a823111e5ea5a2ae489de93741f6711bb7fa82421954b3d83251d45fc1b1", "x86_64-pc-windows-msvc-0.0.257": "c6f7f3bbb4e7f2bc018049d75f4418a86ef4728647d1942400466505e17c72a0", "x86_64-unknown-linux-gnu-0.0.257": "91e4c97ed97435e7ebf026d5939785d4ff56f0ccc36271d53ab4b54647cf6f05", "x86_64-unknown-linux-musl-0.0.257": "dbecc84738a788232a7a4ea60cf56373bfd4d99ab121a275e3bdccba8c2cc070", "aarch64-apple-darwin-0.0.256": "18f468beee7ab174c287aa082e1ca95e75f9e30696eea09b4ed9b990ac2e16da", "aarch64-pc-windows-msvc-0.0.256": "1ff7beab139680fe3309bc7b3940dd6243d61b83cc074a0001936a63cf86a05d", "aarch64-unknown-linux-gnu-0.0.256": "00f9b725d826b40c943e575c8cf9730a3bab44388e139ea62738daed49b66834", "aarch64-unknown-linux-musl-0.0.256": "c75af9c5f64d67e97be27ca40cba535728522222902b60d916d320918f0186bd", "armv7-unknown-linux-gnueabihf-0.0.256": "41f1a87ee5dca165510c5565c481138ece427760c26fd32f3ebd6cf5fa95bc84", "armv7-unknown-linux-musleabihf-0.0.256": "e1acddc73b3a78c0a86b8c8e6cb1dd616a8263d33d2a06d8761fcb9472259ee1", "i686-pc-windows-msvc-0.0.256": "78fe9939a2cff7fa83d17ce351c15ee39b820ba285e35319fdfcfdb97471a12a", "i686-unknown-linux-gnu-0.0.256": "46c5b619010c0bd266beaf738d65f2e21aace6d516ce506501874f4b8fc80169", "i686-unknown-linux-musl-0.0.256": "eddae5ea80b9d84d05cd4d18e4fac2e464c64a55a4593e9751fac5c837a99323", "powerpc64-unknown-linux-gnu-0.0.256": "e8e58c41b2b92459d6542aeba180442ea7114de0c96a2b3ba4c4b28bba9d7d29", "powerpc64le-unknown-linux-gnu-0.0.256": "f350eddfc1d4cd5dae0beaa7ea2715f4a1298e2aeb3d5c514491f68bd0072fde", "s390x-unknown-linux-gnu-0.0.256": "926a53df7a9e8bc3a957dd6ada5ccde50c03abbba413278a6d2bec8611f1a689", "x86_64-apple-darwin-0.0.256": "1213fd5c5c421463076985874e83db00a6d185324ee7ddb9833ea6d2c4d5b3c0", "x86_64-pc-windows-msvc-0.0.256": "9a1a5bd99a2ea827bcaeb8086071bec739a32afa2e1d316e4ea3d617d1260752", "x86_64-unknown-linux-gnu-0.0.256": "6cf2597d95da97586f3da073bcffcd56b8fe95d76378b8b461ad8fade47a2eca", "x86_64-unknown-linux-musl-0.0.256": "5a43d1c18765df922e292d13be13aacd2a0c9167284f6c10842f6dee6155f160", "aarch64-apple-darwin-0.0.255": "aaaec114e6944cb83130718c3b08a660ac4af0ce42f02aa62c1035770023bd16", "aarch64-pc-windows-msvc-0.0.255": "6ce982787836c9bda66ba984c644d1decf15e017e73995be8e8779d3d6f5987e", "aarch64-unknown-linux-gnu-0.0.255": "b7f435aa0074d676cad3f809f15d2eb899a5a87314f7dcf904bf40f89aceb212", "aarch64-unknown-linux-musl-0.0.255": "ad5f783179b3897b16f11c1e8683189a4eaa74199b9f8597cbbc18e1d04b7b1a", "armv7-unknown-linux-gnueabihf-0.0.255": "e05d28cb17953fc7ce30e46245efdf7fa969a37f22b16c784451c47bfac85847", "armv7-unknown-linux-musleabihf-0.0.255": "0519eed904443f2fbe5fa9d2649829d0e9b517dcb5f676dbba1c89327d2a877c", "i686-pc-windows-msvc-0.0.255": "e5bcbfcb79981dc15c2c89ecbef3bb49398e3e9778ac86a225951766b797f2cd", "i686-unknown-linux-gnu-0.0.255": "8404d5df95c12d912bdf6bcb394f1a62cc3053b0a54fda373dfb1440bc056441", "i686-unknown-linux-musl-0.0.255": "6eaef1af7088bd259a42cecb603bd1f79a389e446d7c5cf90897977a9d68d687", "powerpc64-unknown-linux-gnu-0.0.255": "fa613b27fab75a2292ff142596876ab70c1bf5f5c43595c8906356d0c1b2d972", "powerpc64le-unknown-linux-gnu-0.0.255": "8d06ddf84f193ad359b43aee9192e5bee1227873c38dbb288c486b1559918609", "s390x-unknown-linux-gnu-0.0.255": "9fcb6fcc87afa4d3d1c1e3149b978f5ba2f1b953673d5aa247d48687b205b167", "x86_64-apple-darwin-0.0.255": "58e1f8efebbc18bf8b296daf34a2c6dc44589e77bcd8a23eb505032a2f303ac4", "x86_64-pc-windows-msvc-0.0.255": "5ea29101388510b7382c98853d3abb05382a52eb84749754e65c075cf779f967", "x86_64-unknown-linux-gnu-0.0.255": "bd7f01e273b453aa636a438a7f784037bdf78cc4ab4adced66152beabfe20c53", "x86_64-unknown-linux-musl-0.0.255": "608df32fd449efbf7c26f9bbd88533218a30284d930f5999bd8eb67df2d1004a", "aarch64-apple-darwin-0.0.254": "7d5d31b215bafd6a5d1c9adc94d29717cc259ea7df535004dc308766f37cacd7", "aarch64-pc-windows-msvc-0.0.254": "226394a64c4b288a1a6f8e270d0062170305fe3ade4b0e3b5e599dc1cae85e08", "aarch64-unknown-linux-gnu-0.0.254": "1c00dbbfc012e78e7cfc3c630074cd21fbefd776e4939c51be9191d13b099309", "aarch64-unknown-linux-musl-0.0.254": "d534b0e0d3fe8050de4630109cdee4ae0afc779df549fcba77312b9674501330", "armv7-unknown-linux-gnueabihf-0.0.254": "a63c46e17723994f85e8a926793c1215f38107c08a4da3d18376daa063613b3f", "armv7-unknown-linux-musleabihf-0.0.254": "3f701309e30f2c5c0ef5e7a1c35c0f744441448b4189400058fae0b0f7ab214c", "i686-pc-windows-msvc-0.0.254": "2f2cdd2e240db4c2b859e8f7aa6dbf6d9caa274b7696aeffba9a88e3db5aaff6", "i686-unknown-linux-gnu-0.0.254": "1129b63a2e49ae89a51df4695571d3d74e56895c97f319e6f79d531b33ec4b2d", "i686-unknown-linux-musl-0.0.254": "547fb950fd337e11b7db474f32a97601aca83119db6536a3f073c559239fe0a5", "powerpc64-unknown-linux-gnu-0.0.254": "ea8839033ab53d01f8ef2bdddac43350ff9b8a390da5d3fe9ca3cf208ff325c1", "powerpc64le-unknown-linux-gnu-0.0.254": "9e19219b06be2d3f4e39e7a3bbdf6a9f0b8508e5e649237f39f463e942413c88", "s390x-unknown-linux-gnu-0.0.254": "0bc49bb08ddcb5b82db664e5265679da1be45dd84e793b958c3651293d770d92", "x86_64-apple-darwin-0.0.254": "0da3771cfb8b0b377ac62e063c83dda8c661e19661b53a6f827620b131aca256", "x86_64-pc-windows-msvc-0.0.254": "b5ba51274725225f2bc7b5e14acc1b5e4f16bf9664857b32ad2be8d35b9ae1d5", "x86_64-unknown-linux-gnu-0.0.254": "9eaac89c2b41b00f65907f5b7dc80f9d2965459f0d59d008f84a212b182065b1", "x86_64-unknown-linux-musl-0.0.254": "b4220eedf5ed2c8e0f30d4cecada433a6b00cc6757e23281c50ab9a14f76b3ff", "aarch64-apple-darwin-0.0.253": "4971ba27e5f9c4cf37dd100dcf32177488d2c5905016c73b5a2d4f5aaf4e1fc8", "aarch64-pc-windows-msvc-0.0.253": "ce5970627e5dd6cfb3a0a5915a3e6b968b38aa8ba90cf6a051d649ce1e40fabe", "aarch64-unknown-linux-gnu-0.0.253": "fb399f24a18f36b40cfc1202a4f30376bbc13463aebddd22d81de6ab4f60befc", "aarch64-unknown-linux-musl-0.0.253": "8f2f008c809384e3c73b7f32d7e5cc209ae3b94f4435b8f08b303d9b3d1ca676", "armv7-unknown-linux-gnueabihf-0.0.253": "33bebb1d1ca09fe391411259e7b5502407214ac036901a9acb8b319c53ccfe85", "armv7-unknown-linux-musleabihf-0.0.253": "faaac2e0a4b18426d3ea5b655fba26a153a53f3b1b5c5bed7f14e410fbae1b7d", "i686-pc-windows-msvc-0.0.253": "99d2b67aece1518d2c415d92f5b34d74f404514f7b9ae3b28cac5b94b6e7d908", "i686-unknown-linux-gnu-0.0.253": "31b28c9f026dc3e4de0f0b5a1472be1d2806e1c7a1d135979f1114e6574660ea", "i686-unknown-linux-musl-0.0.253": "3383c993250b119b1e61c81ac228e7e7f12d44e2270304b74b195fb6879a5032", "powerpc64-unknown-linux-gnu-0.0.253": "71f2c084ab585cafb51729826b9ebc6b6356669806892d32d3881a46217cf120", "powerpc64le-unknown-linux-gnu-0.0.253": "86707ed73f38702291b9606c80a47002a29072ecaca33a9e3920d99f15e8e595", "s390x-unknown-linux-gnu-0.0.253": "e52fe830d0d32ba5e8dc06c762831887770a0fb82f30b8c8352013ee7fb176b0", "x86_64-apple-darwin-0.0.253": "86fec4a59ce0f3b33aa827835cd7e4e4d7983aad4ffd98461fb4288c4fee4046", "x86_64-pc-windows-msvc-0.0.253": "6dc842c4ce113e7c53ffef2c4f64dff711274b120b4cee90b5638aa90cc7be6c", "x86_64-unknown-linux-gnu-0.0.253": "4e5618d0fc570ad0cfb0ef4be892a5f83ec344c8081cc73881319df861e74acd", "x86_64-unknown-linux-musl-0.0.253": "f90b9f11a9ea3aef93b2a02c69508a5c9536d27515314c0baca594429e639c11", "aarch64-apple-darwin-0.0.252": "e390fd6bfd7ad581b59f63d518e69aad6517c6334d78e1e738cea7d5ef51916e", "aarch64-pc-windows-msvc-0.0.252": "1b90539a772bf5f416360766d4c2a6bfbf738c3ee08afd992e84df35842820d7", "aarch64-unknown-linux-gnu-0.0.252": "a62b5764a301ab958569faffcb2601bf426a799bc45d00ac40d329ace6db1ed4", "aarch64-unknown-linux-musl-0.0.252": "e23229de6411c13d8962cfac256c7eb6dfb96eea7197a3e70067622da99d32a2", "armv7-unknown-linux-gnueabihf-0.0.252": "fa19525a5c697c3cbd1f105f9c97c37a1b02a3635c0baa327dfc11cd754aca23", "armv7-unknown-linux-musleabihf-0.0.252": "ad090b2bfcd48722e3950263cde71cb7559e6cb3c51b49bcb3517a2c0a2972e7", "i686-pc-windows-msvc-0.0.252": "651083e305d1d4052c0b49e26f7124e89aeda4cbb8afd8c03005beb7c5785d32", "i686-unknown-linux-gnu-0.0.252": "1f7cecd626b936210b18e48a3eaf8dfeb245c01a631031b69a266552eb3c8cc8", "i686-unknown-linux-musl-0.0.252": "a9e0d25cdb4c15a9e64f7b44247ef5dfeb2f7c6ea29e3e0793a5976baed59245", "powerpc64-unknown-linux-gnu-0.0.252": "e717e745d2c4a9924aef6ec2cd44570e92aceb185c47e9ed4d915b56d5016526", "powerpc64le-unknown-linux-gnu-0.0.252": "63bc6cf08288a4870a218658cf3a169b3f1d51e66a7eda1f278d77af3bfbb598", "s390x-unknown-linux-gnu-0.0.252": "c1768f52a742445fb688dce628673e39da938a7a6d9c8430474c44f74375516a", "x86_64-apple-darwin-0.0.252": "ade52eb700ce6ecf112f55b3fa4fd7106abfeb453c0066981fc3113dcad383fa", "x86_64-pc-windows-msvc-0.0.252": "c75db4684d8ca71f4ab9745e73bc386d481d6a79a8dfde24d03890289f928f5e", "x86_64-unknown-linux-gnu-0.0.252": "820e9b4ac090ffd57d1e08a1fe2d11e527dda9ae345c48f09b42878d16061b3e", "x86_64-unknown-linux-musl-0.0.252": "c096fa9d6ff38510f7c63eaa4b002a5bcc5a44f2a2ba4facfac8d0d0d44f0744", "aarch64-apple-darwin-0.0.251": "8875353918698691e05f374d1a93c765ca6c2703d467ee962f8fd2fb592b2aba", "aarch64-pc-windows-msvc-0.0.251": "b349a4518766e189545658df8264df442fb2d286a2c82f97017273163da0200e", "aarch64-unknown-linux-gnu-0.0.251": "25c44b6537854dd418a93060bda655008875fd84e9cd50a507ca481efcd59c39", "aarch64-unknown-linux-musl-0.0.251": "333c77f0969a179aed78016d5047cc0a6b28f83eb19f4f368f01f035a50d7e50", "armv7-unknown-linux-gnueabihf-0.0.251": "58b0c37455fd49d9bb8c5e6c60ab23944a72dd69df7982c16ed589c36f1c67df", "armv7-unknown-linux-musleabihf-0.0.251": "44fd8307b5e78aea2e7e7651e7fbc32c042b2eb95464204cfce749c8f93d5353", "i686-pc-windows-msvc-0.0.251": "6cd65070f2f9b04e200c216d4e5eca0547fbb3e84bbfe23554930523a89013e6", "i686-unknown-linux-gnu-0.0.251": "2faf3dc67a76eee19a67ba29fec3070a26897f87a47fd3ed4482439f3b850ab2", "i686-unknown-linux-musl-0.0.251": "6ec089451021108abd71e224655651be4e4437362ee02c986eb1b27edb27a6a2", "powerpc64-unknown-linux-gnu-0.0.251": "c7eb403d85889d7f7fe6feb57e41b4340e4052d75ae9501ff3eef04ab91416c1", "powerpc64le-unknown-linux-gnu-0.0.251": "db6e4c78a4ee145225d9672863fa2ef593f562e17bd1dd93ebf8ad29fb20a2cb", "s390x-unknown-linux-gnu-0.0.251": "bbd8db1ae20cc3ea98cdb9361f898deaf29f6813115b99cce09145f5c4550631", "x86_64-apple-darwin-0.0.251": "f89b261708542cf9dd9c9a25ad02de75731d0695637e0e0e40fce6c64406e982", "x86_64-pc-windows-msvc-0.0.251": "bba682c431f1ba83ff1b41b5559a38f8a83da7eb97e52d02fa0db7325e7986d0", "x86_64-unknown-linux-gnu-0.0.251": "4301fe41d92ba318984a451fb44285f79c7be75e53bde2a1cee414b8f4a96f05", "x86_64-unknown-linux-musl-0.0.251": "5ef635b40d9488a02270886329d8eda878b03ad4b977982199e5d6cc350681a0", "aarch64-apple-darwin-0.0.250": "f41458e35c192c7b14bed026eb418ca458195e86dac2f37fa3070b342d492f9a", "aarch64-pc-windows-msvc-0.0.250": "a472e31c3ebb26d3fa82e58bd346022f65da6ff4ecd63ada7d37e4570ae8508c", "aarch64-unknown-linux-gnu-0.0.250": "b621b84ea15646bb7687119a38ad09f81fdec2f12880ddf6017dd2759fc1ab7e", "aarch64-unknown-linux-musl-0.0.250": "da57e2507d00cd04b01c88ecd88a58de051a0c2b6f3d72ee79be021f44f2631d", "armv7-unknown-linux-gnueabihf-0.0.250": "78555b1cfbc3836592026acd66b8b664b2775bcaf708f33b6b9607d79610e1a8", "armv7-unknown-linux-musleabihf-0.0.250": "0d7914b332122b2f9dca8444d1d3155b77d294be8478e2bbeea0346cad001a57", "i686-pc-windows-msvc-0.0.250": "2381fda255cb45ea319b0dea38c852423304c583676487c53415e2b30b12bcfe", "i686-unknown-linux-gnu-0.0.250": "a4041003accd81494a921763a4ac0b4eae08fdb6aacf3a68fde00b17a22a23ee", "i686-unknown-linux-musl-0.0.250": "6ce2e0ab2daa11f7a6267abb1b41b3e448d9f4a3a7bc47c77ba07b52531a5632", "powerpc64-unknown-linux-gnu-0.0.250": "16b49ef228cd53f9cabf79bce7a8f337110c30b02b4dc08ac2a9083c82bd8b72", "powerpc64le-unknown-linux-gnu-0.0.250": "a4a112b61d812d27d11b15e516a602885a7d3a97e95f9f3e255cd301d9f975ca", "s390x-unknown-linux-gnu-0.0.250": "f7946d2cc36d0837ba10a7d566b17ad08f3e4f0a13d92e233d9de66ab7121883", "x86_64-apple-darwin-0.0.250": "dbc24ff991c480b385357d844ea704d8b73850f215358161afddbd01cb4f2a61", "x86_64-pc-windows-msvc-0.0.250": "1d2428284bd3b56153feb24696036c0f1e3509e73cd285955e0c2b0046afc8f0", "x86_64-unknown-linux-gnu-0.0.250": "623904f9a4642015f09623c9cadd7db46c3c8067cda0aff4c84a485aa36ad9ad", "x86_64-unknown-linux-musl-0.0.250": "863f2ac7f685b8e4053624a1f0c130cc8d249fd1e7b75891c0b5b94a4977fa6d", "aarch64-apple-darwin-0.0.249": "e652aaf2dd60b93dea3e63491fe9f8f43dc428e53858ff9919e901315a73ef6b", "aarch64-pc-windows-msvc-0.0.249": "de88a6941f580dc9c2cc54a9ef7eb784006ca9ed0ece4382be06c105c3a79056", "aarch64-unknown-linux-gnu-0.0.249": "58337e6def7374f8da4dc483b02f0741a8a19a9ac975ecadf1fa7a35baa4b663", "aarch64-unknown-linux-musl-0.0.249": "65c7bdc3522067f472d28ae4aa18fb50757a3c80278cf386bbab42bf1a8de86b", "armv7-unknown-linux-gnueabihf-0.0.249": "13c8cd60253a2ad7cda6624a6a3ff1ed5fe4f3064cd5248b7d9bb3084b9238b5", "armv7-unknown-linux-musleabihf-0.0.249": "9036dc5cefac7e1f9780b0be2b582fb6a4c854a62bf074599fd40662ef0a020c", "i686-pc-windows-msvc-0.0.249": "42de403f6fe0cb65a387f748e44339d472f8d1f13be5085ba31b920868b43b49", "i686-unknown-linux-gnu-0.0.249": "4ca1089aed8dc11657700876ee4591eac3424fb5c33a3e7c2fb8e5c10d84058a", "i686-unknown-linux-musl-0.0.249": "16e033c130c5f892910d062a1df73939689e5995d0d982edde0a348e1c1b06ab", "powerpc64-unknown-linux-gnu-0.0.249": "f716d2b3f96936e4f14b27cae6c17c82d56accad0684ae4623245eca8bab036b", "powerpc64le-unknown-linux-gnu-0.0.249": "b614da7d7b0e16003f25f97ca329f0f85e25ddfca431bdf9e82e5b540c0c0fba", "s390x-unknown-linux-gnu-0.0.249": "a7d3183de4c3a78100511c4c9b15da42e80472decbcc6896628833c74910730b", "x86_64-apple-darwin-0.0.249": "21c0ce48306953a9b33407ce46bc7bea39357dc2f714e84f4b274a2487a6de7c", "x86_64-pc-windows-msvc-0.0.249": "d3e18164a996f81cce0d7962942041ddff35105719becd4085951c12050d5a0b", "x86_64-unknown-linux-gnu-0.0.249": "deee271fb38826503de8d121c3c6557d16322f456e746a94f1b516c437a1fab2", "x86_64-unknown-linux-musl-0.0.249": "efab7ba33e85ca09ed7dab5072b1c2e80f325918c99fc7a88ad4f643ea8983a9", "aarch64-apple-darwin-0.0.248": "a5f39e1b66028807047b0a9d77dab386cea0a03c468385fd0c22e5dd2d0df9be", "aarch64-pc-windows-msvc-0.0.248": "4f1d795e2795db0c8117c178e8485085bba8ce13371506e27113ac84989711f9", "aarch64-unknown-linux-gnu-0.0.248": "9ad0c1ea5c27db2f8269c872500ae804a4c59323db4e7ade0913ce379dc13ec6", "aarch64-unknown-linux-musl-0.0.248": "835344ee1984f36566f5b3bdbfe500d796a1247fa9ad6fc3d2ae636c4eca3308", "armv7-unknown-linux-gnueabihf-0.0.248": "c8e2a21a4e74b00003d303e642416aa36e397e8a0b9c374b9848f51f9539d8ed", "armv7-unknown-linux-musleabihf-0.0.248": "5417e276e05e9d019f290027d0fa8e4bd8f6b550e2d056b9d318f27079399c50", "i686-pc-windows-msvc-0.0.248": "58f7ec2f9198965ac464705bcf5a4d8100e7b3a4f074c41496c049735049e57b", "i686-unknown-linux-gnu-0.0.248": "db65fd211c0f527ae4dccbd1583d884ce0a62cd0818f683cca82137af45127e7", "i686-unknown-linux-musl-0.0.248": "0db344814222c479197fa57ba4ab5c00d0cc73329a8f0e8c90f6d1b4977b770c", "powerpc64-unknown-linux-gnu-0.0.248": "053be6b563aacda4e08aa4410cfca99234ab5f699fe456d3c49da6f43f651d7f", "powerpc64le-unknown-linux-gnu-0.0.248": "4fae3de01cdf3ec053200447fa29a94dbfb81d3c661fc65cf6811c4af71d7339", "s390x-unknown-linux-gnu-0.0.248": "cf7761505b536d67b7438971e02442e5a3f030d92622f0546af6b752fb2c2edf", "x86_64-apple-darwin-0.0.248": "52fb501cd713a21ef048e6a133b82776affc2f9cba67be2d568c02bbac13e1f3", "x86_64-pc-windows-msvc-0.0.248": "16f3a64ccaed2d12a2b5037eb6ba53e4781810092d46e6d28f4df8986d3bad3e", "x86_64-unknown-linux-gnu-0.0.248": "900501b8132db61876a7b4ef26209c642862e8bd2a17db53ab9c6a06e9df5153", "x86_64-unknown-linux-musl-0.0.248": "b3296618951ca46538ec04f7aa2a0eb513c031e479b417fd89e1fa6aa83baa97", "aarch64-apple-darwin-0.0.247": "ca18b0532caf0ae3e7f5e83865796b10ea92676dc7600cee1f7725bab440cd49", "aarch64-pc-windows-msvc-0.0.247": "cb49f355c9ca702564b1eb880a9b7f1223977d5982c7f4d148345f6caec1e949", "aarch64-unknown-linux-gnu-0.0.247": "c4767b6b321213c5ccc456e7c4501a246f03736e96ac3f4c8ee70185149c4e05", "aarch64-unknown-linux-musl-0.0.247": "a17efd0245f56a0a0a6bb85077da84b62fe10b69395f9718d24282528306e226", "armv7-unknown-linux-gnueabihf-0.0.247": "251b7e392736f2c3beb751cb6fbcdf9eb757bccbeffde3f44852e45ad3e05811", "armv7-unknown-linux-musleabihf-0.0.247": "9c4a723816057b3ca0c9abeeed7b4c35d98a1698cdabdf877de730c27a23cbf2", "i686-pc-windows-msvc-0.0.247": "167a0896f1bee1e72657264d6716bf789a803301d456f6a15a023be1a8a74221", "i686-unknown-linux-gnu-0.0.247": "7d602bb0ff23624cdc78cbb88d9b973bf0c2cfac2669f8136e1d09eac8a9a60f", "i686-unknown-linux-musl-0.0.247": "18e4359ad066ab5c800cf992ab8e024c7a3b3caf777b450003312064ea7e3265", "powerpc64-unknown-linux-gnu-0.0.247": "6b1b2c857d2f0dd01cf04ca724314670dbfe4e86aceefd22b49585ca2e57b1dc", "powerpc64le-unknown-linux-gnu-0.0.247": "e34dc228468adc15fc9190590036f2dd043fb393493c404d0db06d825dbd5426", "s390x-unknown-linux-gnu-0.0.247": "cce6b3eff7370ce4ae602686d32c5eeb4537a5cd01b6f509d2dcbb4430803c1d", "x86_64-apple-darwin-0.0.247": "480e9438bbded540cb95ec86862fdc921ef1cdc5e95bac7e0814b4ae7426bc70", "x86_64-pc-windows-msvc-0.0.247": "2b646553a9c022c5761dfc6ac2d8ba1e733cc68b4c2e44770d2a6df0b97389d0", "x86_64-unknown-linux-gnu-0.0.247": "2596ba8457879c622c80270b87a19d358cf8d30e27ead6999870a843da2fd7b6", "x86_64-unknown-linux-musl-0.0.247": "d14f59b09a83e3bdba4a54687158534f7c8ae702f8df770b8eaabf4445fb8b60" }; // src/download/checksum/update-known-checksums.ts async function updateChecksums(filePath, downloadUrls) { await import_node_fs.promises.rm(filePath); await import_node_fs.promises.appendFile( filePath, "// AUTOGENERATED_DO_NOT_EDIT\nexport const KNOWN_CHECKSUMS: { [key: string]: string } = {\n" ); let firstLine = true; for (const downloadUrl of downloadUrls) { const key = getKey(downloadUrl); if (key === void 0) { continue; } const checksum = await getOrDownloadChecksum(key, downloadUrl); if (!firstLine) { await import_node_fs.promises.appendFile(filePath, ",\n"); } await import_node_fs.promises.appendFile(filePath, ` "${key}": "${checksum}"`); firstLine = false; } await import_node_fs.promises.appendFile(filePath, ",\n};\n"); } function getKey(downloadUrl) { const parts = downloadUrl.split("/"); const version = parts[parts.length - 2].replace("v", ""); const fileName = parts[parts.length - 1]; if (fileName.startsWith("source")) { return void 0; } if (fileName.includes(version)) { const name2 = fileName.split(version)[1].split(".")[0].substring(1); return `${name2}-${version}`; } const name = fileName.split(".")[0].split("ruff-")[1]; return `${name}-${version}`; } async function getOrDownloadChecksum(key, downloadUrl) { let checksum; if (key in KNOWN_CHECKSUMS) { checksum = KNOWN_CHECKSUMS[key]; } else { const content = await downloadAssetContent(downloadUrl); checksum = content.split(" ")[0].trim(); } return checksum; } async function downloadAssetContent(downloadUrl) { const downloadPath = await downloadTool(downloadUrl); return await import_node_fs.promises.readFile(downloadPath, "utf8"); } // src/utils/constants.ts var REPO = "ruff"; var OWNER = "astral-sh"; // src/update-known-checksums.ts var PaginatingOctokit = Octokit.plugin(paginateRest, restEndpointMethods); async function run() { const checksumFilePath = process.argv.slice(2)[0]; const githubToken = process.argv.slice(2)[1]; const octokit = new PaginatingOctokit({ auth: githubToken }); const response = await octokit.paginate(octokit.rest.repos.listReleases, { owner: OWNER, repo: REPO }); const downloadUrls = response.flatMap( (release) => release.assets.filter((asset) => asset.name.endsWith(".sha256")).map((asset) => asset.browser_download_url) ); await updateChecksums(checksumFilePath, downloadUrls); const latestVersion = response.map((release) => release.tag_name).sort(semver3.rcompare)[0]; setOutput("latest-version", latestVersion); } run(); /*! Bundled license information: undici/lib/web/fetch/body.js: (*! formdata-polyfill. MIT License. Jimmy Wärting *) undici/lib/web/websocket/frame.js: (*! ws. MIT License. Einar Otto Stangvik *) */